Плагины и middleware

Миграция плагинов и middleware с Nuxt 2 на Nuxt 3.

Плагины

Формат плагинов изменился: плагин принимает один аргумент — nuxtApp.

export default (ctx, inject) => {
  inject('injected', () => 'my injected function')
}
Узнать больше Docs > 4 X > Directory Structure > App > Plugins.
Подробнее о формате nuxtApp.

Миграция

  1. Переведите плагины на хелпер defineNuxtPlugin.
  2. Удалите из массива plugins в nuxt.config записи для файлов из app/plugins/. Все файлы в этом каталоге (и index в подкаталогах) регистрируются автоматически. Вместо mode: 'client' или 'server' укажите это в имени файла, например ~/plugins/my-plugin.client.ts — только для клиента.

Маршрутный middleware

Формат маршрутного middleware изменился.

export default function ({ store, redirect }) {
  // Если пользователь не аутентифицирован
  if (!store.state.authenticated) {
    return redirect('/login')
  }
}

Как и в Nuxt 2, middleware из папки ~/middleware регистрируется автоматически; в компоненте его указывают по имени. Но теперь это делается через definePageMeta, а не через опцию компонента.

navigateTo — одна из хелпер-функций для маршрутизации.

Узнать больше Docs > 4 X > Directory Structure > App > Middleware.

Миграция

  1. Переведите route middleware на хелпер defineNuxtRouteMiddleware.
  2. Глобальный middleware (ранее в nuxt.config) разместите в ~/middleware с расширением .global, например ~/middleware/auth.global.ts.