РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
242 of 274 menu

Перехватчики interceptors

Перехватчики (interceptors) в JavaScript Livewire позволяют перехватывать и изменять поведение запросов к серверу. Они дают возможность выполнять код до отправки запроса, после получения ответа или в случае ошибки. Перехватчики настраиваются через объект Livewire.hook или глобальный массив Livewire.interceptors.

Синтаксис

Livewire.hook('interceptor_name', (data, next) => { // Ваш код перехватчика next(); });

Также можно использовать массив для регистрации нескольких перехватчиков:

Livewire.interceptors.push({ interceptor_name: function(data, next) { // Ваш код перехватчика next(); } });

Пример с хуком beforeRequest

Перехватчик beforeRequest выполняется перед отправкой запроса на сервер. Давайте добавим заголовок к запросу:

Livewire.hook('beforeRequest', (data, next) => { data.headers['X-Custom-Header'] = 'CustomValue'; next(); });

Результат выполнения кода (в консоли браузера):

"Заголовок X-Custom-Header добавлен к запросу"

Пример с хуком afterRequest

Перехватчик afterRequest выполняется после получения ответа от сервера. Используем его для логирования:

Livewire.hook('afterRequest', (data, next) => { console.log('Запрос выполнен', data.response); next(); });

Результат выполнения кода (в консоли браузера):

"Запрос выполнен {status: 200, data: {...}}"

Пример с хуком onError

Перехватчик onError срабатывает при возникновении ошибки в запросе. Обработаем ошибку:

Livewire.hook('onError', (data, next) => { console.error('Ошибка запроса:', data.error); next(); });

Результат выполнения кода (в консоли браузера):

"Ошибка запроса: Network Error"

Пример с хуком beforeRequest и отменой

Можно отменить запрос в перехватчике beforeRequest, вызвав next(false):

Livewire.hook('beforeRequest', (data, next) => { if (data.payload.method === 'delete') { console.log('Запрос удаления отменен'); next(false); } else { next(); } });

Результат выполнения кода (в консоли браузера):

"Запрос удаления отменен"

Пример с хуком afterRequest и модификацией данных

В перехватчике afterRequest можно изменить данные ответа:

Livewire.hook('afterRequest', (data, next) => { if (data.response && data.response.data) { data.response.data.modified = true; } next(); });

Результат выполнения кода (в консоли браузера):

"Данные ответа изменены, добавлен флаг modified"

Смотрите также

  • объект wire,
    который предоставляет доступ к компоненту Livewire в JavaScript
  • метод wire.call,
    который вызывает метод компонента из JavaScript
  • метод wire.set,
    который устанавливает значение свойства компонента из JavaScript
  • метод js,
    который позволяет выполнять JavaScript-код в компоненте
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить