NUXT | Как выполнить действие при запуске ЛЮБОЙ страницы?
Нужно взять token из localStorage и засунуть его в store. Пытался делать через nuxtServerInit, но эта функция выполняется на сервере, где нет localStorage. Есть ли какие-нибудь хуки для всего проекта Nuxt?
Ответы (1 шт):
Давайте определимся для начала, что Вы патаетесь сделать. Скорее всего Вы уже записали в localStorage, он уже там есть. Дальше Вы пытаетесь к каждой ссылке притянуть токен. Нет никакой необходимости каждый раз его подтягивать, а можно использовать axios interceptors (пример реализации, документация).
Дальше, если Вы хотите что-то при запуске делать в приложении, просто создаете плагин и в файле nuxt.config.js в секции plugins его регистрируете. Тогда при первом запуске код будет отрабатывать (пример заполнения данных пользователя в localStorage). На стороне сервера, правильно заметили, нужно тоже подтягивать данные в localStorage (да, на сервере он тоже есть, и его нужно заполнять, чтобы не получить рассинхрона, иначе зачем вообще Nuxt использовать).
Момент, который не относится к вопросу: не храните в локальном хранилище токен. Во-первых, его придется брать для серверного localStorage, что сделать будет невозможно из клиентсвкого. Во-вторых, срок жизни задать тут невозможно. Используйте куки, там этих проблем не будет.