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

时间:2018-09-19 13:47:10

标签: nuxt.js

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

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

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

pages/
--| _slug/
-----| comments.vue
-----| index.vue

我认为有一些选择:

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

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

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

好吧,我想到了我的“选项3”:

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

pages/
--| _slug/
-----| comments.vue
-----| index.vue
--| _slug.vue

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

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

<script>
export default {
  middleware: 'myslugmiddleware',
}
</script>