前言:最近做公司官网的项目,考虑到seo,因此采用了nuxt框架进行研发。由于nuxt是根据pages里的目录结构自动生成路由地址,为了便捷需要自动生成面包屑,网上的资料千奇百怪,本来都想着写死面包屑,但考虑未来的拓展性,还是硬着头皮 去研究nuxt的路由。
思路:解决办法就是根据中间件来配置每个页面的中文名,然后动态获取显示。
具体方案:1、配置中间件,在middleware文件夹下新建一个metaTitle.js的文件,将页面的meta属性取出来放到route里存起来。
export default ({store, route, redirect}) => {
route.matched.forEach((item, index) => {
item.meta.title = route.meta[index].title || '';
})
}
2、在nuxt.config.js中配置中间件
router: {
middleware: ['metaTitle']
},
3、在每个page页面配置对应的meta属性,配置对应的面包屑中文名
4、路由判断并显示,根据this.$route.matched可以获取到当前路由及其父亲路由,取出在中间件设置的meta属性,即可动态生成中文版面包屑。
首页
{{item.meta.title||item.name}}