根据docs:中间件将按以下顺序依次执行:
现在,我想知道如何将中间件添加到如下页面中的一组页面中:
pages/
--| _slug/
-----| comments.vue
-----| index.vue
我认为有一些选择:
1)我可以将中间件添加到目录中的每个页面上,但这并不干。
2)另一个解决方案是将中间件添加到带有路由的条件的nuxt.config.js
上,但这也不适合该代码,因为它可以在其他任何代码上运行也有路线。
3)我也许可以将嵌套路由与仅包含单个<nuxt-child>
元素的模板一起使用,但是我不确定其副作用:是否仍可以使用页面组件属性?那会将所有内容嵌套在另一个DOM元素中吗?。
感谢您的帮助。
答案 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>