const element = document.getElementById('myElement'); element.textContent = 'Новый текст'; В этом случае каждое изменение непосредственно обновляет DOM, что может быть неэффективно при множественных обновлениях.Пример с использованием Virtual DOM (пример на React):
class MyComponent extends React.Component { render() { returnВ этом случае, при изменении состояния компонента, React сначала применяет изменения к виртуальному DOM, а затем, используя согласование, оптимально обновляет реальный. Виртуальный Document Object Model позволяет писать код, как если бы можно было менять любую часть веб-страницы в любой момент, не беспокоясь о производительности. Это делает разработку интерфейсов более интуитивно понятной и эффективной. 👉 @seniorFrontНовый текст; } } ```
numbersOfLetters(60) --> ["sixzero", "seven", "five", "four"] numbersOfLetters(1) --> ["one", "three", "five", "four"]👉 @seniorFront
function App() { returnОбновление состояния Когда состояние компонента изменяется, React вызывает рендеринг компонента. Это позволяет компоненту отобразить новые данные.; }
function MyComponent() { const [count, setCount] = useState(0); return (Обновление пропсов Если родительский компонент передаёт новые пропсы, дочерний компонент будет ререндериться с новыми данными.); }{count}
function ParentComponent() { const [value, setValue] = useState(0); return (Обновление контекста Когда значение контекста изменяется, все компоненты, использующие этот контекст, будут ререндериться.); } function ChildComponent({ value }) { return{value}
; }
const MyContext = React.createContext(); function App() { const [value, setValue] = useState('initial'); return (Обновление при изменении ключа Если ключ компонента изменяется, React удаляет старый компонент и добавляет новый, вызывая рендеринг нового компонента.); } function MyComponent() { const contextValue = useContext(MyContext); return {contextValue}
; }
function App() { const [items, setItems] = useState([1, 2, 3]); return (
foo -> foo1 foobar23 -> foobar24 foo0042 -> foo0043 foo9 -> foo10 foo099 -> foo100👉 @seniorFront
v-ifрендерится в DOM только тогда, когда условие истинно. Если условие ложно, элемент не создаётся и удаляется из DOM. Элемент с v-show всегда рендерится в DOM, независимо от условия. Однако, его видимость контролируется с помощью CSS-свойства display. Переключение состояния:
v-if: Переключение между состояниями приводит к созданию или уничтожению элемента в DOM. Это может быть медленнее при частом переключении, так как каждый раз происходит перерисовка.
v-show: Переключение состояния происходит мгновенно, поскольку элемент уже присутствует в DOM, и меняется только его CSS-свойство display. Использование в условиях:
v-if: Рекомендуется использовать, когда элемент должен быть условно добавлен или удален из DOM. Полезно, когда условие меняется редко.
v-show: Рекомендуется использовать, когда необходимо часто переключать видимость элемента, поскольку это более производительно. Примеры: С v-if:
В этом примере элементexport default { data() { return { isVisible: true }; }, methods: { toggle() { this.isVisible = !this.isVisible; } } };Этот текст отображается только если isVisible истинно
будет добавляться или удаляться из DOM при каждом нажатии на кнопку. С v-show:
В этом примере элементexport default { data() { return { isVisible: true }; }, methods: { toggle() { this.isVisible = !this.isVisible; } } };Этот текст всегда присутствует в DOM, но может быть скрыт
всегда присутствует в DOM, но его видимость контролируется с помощью CSS. 👉 @seniorFront
["apple","rottenBanana","apple"]Результат -
["apple","banana","apple"]👉 @seniorFront