\n\n\n \n\n```\n\nБез `nextTick` `input` может быть ещё `null`: `v-if` не успел смонтировать узел. Vue батчит обновления асинхронно (обычно через microtask) — это оптимизация, а не баг. Есть Promise-форма и `nextTick(callback)`. В Options API — `this.$nextTick()`.\n\n## Когда думать о нём\n\nИзмерение размеров после рендера, скролл к элементу, фокус, работа с chart/editor-библиотеками, которые читают DOM императивно. Не оборачивайте в `nextTick` каждый чих — только когда реально нужен свежий DOM после реактивного изменения.\n\nСвязка с lifecycle: в `onMounted` DOM уже есть; `nextTick` чаще нужен *после* изменения данных внутри уже смонтированного компонента.\n\n## Итог\n\n`nextTick` = «подожди патч DOM». Классический junior-вопрос рядом с реактивностью и template `ref` на элементы."}}}
nextTick ждёт, пока Vue применит отложенные DOM-обновления после изменения реактивного состояния. Нужен, когда сразу после мутации данных вы обращаетесь к DOM, который ещё «старый».
Без nextTickinput может быть ещё null: v-if не успел смонтировать узел. Vue батчит обновления асинхронно (обычно через microtask) — это оптимизация, а не баг. Есть Promise-форма и nextTick(callback). В Options API — this.$nextTick().
Когда думать о нём
Измерение размеров после рендера, скролл к элементу, фокус, работа с chart/editor-библиотеками, которые читают DOM императивно. Не оборачивайте в nextTick каждый чих — только когда реально нужен свежий DOM после реактивного изменения.
Связка с lifecycle: в onMounted DOM уже есть; nextTick чаще нужен после изменения данных внутри уже смонтированного компонента.
Итог
nextTick = «подожди патч DOM». Классический junior-вопрос рядом с реактивностью и template ref на элементы.