gpt4 book ai didi

vue.js - 多条路线使用同一页面

转载 作者:行者123 更新时间:2023-12-04 13:38:47 24 4
gpt4 key购买 nike

我试图找出如何在带有 i18n 模块的 Nuxt.js 上为多个路由使用同一页面。

基本上我想要这条路线:/product-category/:slug/in/:material使用与 /product-category/:slug 相同的页面

到目前为止,我已经在下面尝试过,将它添加到 nuxt.config.js - 但它不起作用。它只是显示 _slug/_material/index.vue文件。

router: {
extendRoutes (routes, resolve) {
routes.push({
path: '/product-category/:slug/in/:material',
component: resolve(__dirname, 'pages/product-category/_slug/index.vue')
})
}
},

也许是因为我有 i18n 模块,也许是因为我做错了什么。

这是我的文件夹结构:

ed

如果我检查我的 router.js 文件,我会看到两次显示的路径:

enter image description here

最佳答案

这是我的解决方法,我只是希望有一个更简单的方法。另外,如果您使用 nuxt i18n,它仍然有效。

nuxt.config.js

router: {
extendRoutes (routes, resolve) {
const routesToAdd = [
{ // add your routes here
name: 'product-category-slug-material',
path: '/product-category/:slug/in/:material',
component: resolve(__dirname, 'pages/product-category/_slug/index.vue'), // which component should it resolve to?
chunkName: 'pages/product-category/_slug/_material/index' // this part is important if you want i18n to work
}
];

const existingRoutesToRemove = routesToAdd.map(route => route.name);

const generateRoutes = routes.filter((route) => {
return !existingRoutesToRemove.includes(route.name);
});

routesToAdd.forEach(({ name, path, component, chunkName }) => {
generateRoutes.push({
name,
path,
component,
chunkName
});
});

routes.splice(0, routes.length, ...generateRoutes); // set new array
}
},

关于vue.js - 多条路线使用同一页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60183041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com