如何在Nuxt中将中间件添加到一组路由

Ray*_*dus 2 nuxt.js

根据docs:中间件将按以下顺序依次执行:

  • nuxt.config.js
  • 匹配的布局
  • 匹配页面

现在,我想知道如何将中间件添加到一组页面中,如下所示:

pages/
--| _slug/
-----| comments.vue
-----| index.vue
Run Code Online (Sandbox Code Playgroud)

我认为有一些选择:

1)我可以将中间件添加到目录中的每个单独页面中,但这并不干。

2)另一个解决方案是nuxt.config.js在路由上有条件地将中间件添加到中,但是这也不适合该代码,除了它也可以在任何其他路由上运行。

3)我也许可以将嵌套路由与仅包含单个<nuxt-child>元素的模板一起使用,但是我不确定其副作用:是否仍可以使用页面组件属性?这会将所有内容嵌套在另一个DOM元素中吗?

任何帮助表示赞赏。

Ray*_*dus 5

好的,只是想出我的“选项3”是前往此处的方法:

创建一个文件_slug.vue并将其添加到与_slug/目录处于同一嵌套级别的页面中:

pages/
--| _slug/
-----| comments.vue
-----| index.vue
--| _slug.vue
Run Code Online (Sandbox Code Playgroud)

在该_slug.vue文件中添加中间件属性:

<template>
  <nuxt-child/>
</template>

<script>
export default {
  middleware: 'myslugmiddleware',
}
</script>
Run Code Online (Sandbox Code Playgroud)