Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Що робить параметр immediate?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**`immediate`** - це параметр функції `watch()`, який змушує watcher виконати callback одразу при створенні, а не тільки при першій зміні значення, що спостерігається. **Ключове:** без `immediate` watcher спрацьовує лише при зміні значення, тому цей параметр найчастіше використовують для завантаження даних одразу під час ініціалізації.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)ЗображенняПараметр `immediate` у функції `watch()` змушує watcher **виконати callback одразу при створенні**, а не тільки при першій зміні значення, що спостерігається. Простіше кажучи: > `immediate: true` **запускає обробник одразу, щойно watcher було встановлено.** Без `immediate` watcher спрацьовує **тільки** при зміні значення. --- ## Простий приклад ```js watch( count, (newVal, oldVal) => { console.log('watch спрацював', newVal, oldVal) }, { immediate: true } ) ``` Якщо `count = ref(5)`: Спрацює одразу: ``` watch спрацював 5 undefined ``` Потім - при кожній зміні. --- ## Приклад без immediate (стандартна поведінка) ```js watch(count, () => console.log('changed')) ``` Якщо користувач ще нічого не змінював: - callback НЕ виконається - watcher чекає першої зміни Це буває незручно, наприклад, при завантаженні даних. --- ## Коли використовувати immediate? ### 1. Щоб завантажити дані при ініціалізації Найчастіший кейс: ```js watch( () => route.params.id, (id) => loadUser(id), { immediate: true } ) ``` Спрацює одразу, без потреби дублювати код у mounted(). --- ### 2. Для синхронізації з localStorage ```js watch( form, () => localStorage.setItem('form', JSON.stringify(form)), { immediate: true, deep: true } ) ``` При ініціалізації - одразу збереже дані. --- ### 3. Для виконання коду, який має запуститися одразу і при змінах Наприклад: - підписка на веб-сокет - ініціалізація фільтрів - первинна валідація --- ## Важливі нюанси #### 1. При immediate oldValue = undefined Оскільки watcher стартує вперше - попереднього значення немає. --- #### 2. Не завжди потрібен immediate Якщо логіка має виконуватися **тільки при зміні**, immediate не потрібен. --- #### 3. Використовуйте разом з `deep`, якщо об'єкт вкладений ```js watch(settings, save, { immediate: true, deep: true }) ``` --- ## Підсумок (ідеально для співбесіди) > `immediate: true` **змушує** `watch()` **виконати callback одразу після встановлення watcher.** > **Корисно для завантаження даних, первинної ініціалізації, синхронізації та випадків, коли ефект має виконатися одразу, а не чекати зміни значення.**Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.