Nuxt Nation 大会即将到来。加入我们,时间为 11 月 12-13 日。

插件和中间件

了解如何从 Nuxt 2 迁移到 Nuxt Bridge 的新插件和中间件。

新的插件格式

您现在可以迁移到 Nuxt 3 插件 API,其格式与 Nuxt 2 略有不同。

插件现在只接受一个参数(nuxtApp)。您可以在文档中了解更多信息。

plugins/hello.ts
export default defineNuxtPlugin(nuxtApp => {
  nuxtApp.provide('injected', () => 'my injected function')
  // now available on `nuxtApp.$injected`
})
如果您想在插件中使用新的 Nuxt 组合式函数(例如useNuxtAppuseRuntimeConfig),则需要为这些插件使用defineNuxtPlugin辅助函数。
尽管通过nuxtApp.vueApp提供了兼容性接口,但您应该避免以这种方式注册插件、指令、混合或组件,而无需添加您自己的逻辑来确保它们不会安装多次,否则可能会导致内存泄漏。

新的中间件格式

您现在可以迁移到 Nuxt 3 中间件 API,其格式与 Nuxt 2 略有不同。

中间件现在只接受两个参数(tofrom)。您可以在文档中了解更多信息。

export default 
defineNuxtRouteMiddleware
((
to
) => {
if (
to
.
path
!== '/') {
return
navigateTo
('/')
} })
在中间件目录之外不支持使用defineNuxtRouteMiddleware

definePageMeta

您也可以在 Nuxt Bridge 中使用definePageMeta

您可以在配置文件中使用macros.pageMeta选项启用它。

nuxt.config.ts
import { defineNuxtConfig } from '@nuxt/bridge'

export default defineNuxtConfig({
  bridge: {
    macros: {
      pageMeta: true
    }
  }
})
但仅限于middlewarelayout