Что такое nextTick?
Продвинутые темы
`nextTick` — это способ отложить выполнение коллбэка до момента после текущей операции: в Node.js process.nextTick, в Vue nextTick (после обновления DOM).
В Node.js — process.nextTick
Ставит коллбэк в специальную очередь nextTick, которая выполняется раньше обычных микрозадач (промисов) и до следующей фазы Event Loop:
console.log('1');
process.nextTick(() => console.log('2'));
Promise.resolve().then(() => console.log('3'));
console.log('4');
// 1, 4, 2, 3 — nextTick раньше промисаПрименение: отложить работу «на конец текущей операции», разбить синхронный код.
Во Vue — nextTick
Vue обновляет DOM асинхронно (батчинг). nextTick даёт коллбэк, который выполнится после применения обновлений к DOM:
this.message = 'новое';
await nextTick();
// здесь DOM уже обновлёнПрименение: работа с DOM сразу после изменения реактивных данных.
Общая идея
nextTick — «выполни это, когда текущая порция работы завершится». В Node — микрозадача с наивысшим приоритетом; во Vue — после цикла обновления DOM.
Коротко для собеседования
nextTick откладывает коллбэк на конец текущей операции. В Node.js process.nextTick — очередь с приоритетом выше промисов. Во Vue nextTick выполняет коллбэк после обновления DOM. Идея — «сделай после текущей порции работы».