如何在 Nuxt js 中为复杂的 Urls 编写动态页面?
How to write Dynamic Pages for complex Urls in Nuxt js?
我用一页来显示类别和子类别的详细信息。我不使用 router.js 来覆盖它,我想使用 nuxt 动态页面来解决这个问题。
url: "/news/afghanistan-81291"
url:"/gallery/technology/apple-revenue-81260"
url:"/world/economy/turkey-economy-81260"
我的本地主机 url 应该看起来像 (page-name/category/:subcategory?)
http://localhost:3000/detail/news/afghanistan-81291
http://localhost:3000/detail/gallery/technology/apple-revenue-81265
http://localhost:3000/detail/world/economy/turkey-economy-81240
在 .nuxt 路由器 js 中
{
path: "/detail",
name: "detail",
children: [{
path: "category/:subcategory",
name: "detail-category-subcategory"
},
...
}
这看起来不是一个好的做法,我需要最佳做法。
您可以在页面内部使用这种结构
- detail
-- - news
-- -- - _slug.vue
-- -- gallery
-- -- -- _tech
-- -- -- -- _slug.vue
-- -- world
-- -- -- _category
-- -- -- -- _slug.vue
您不需要离开您的页面并且可以在一个地方处理所有事情(并且靠近您的代码)。
文档中的更多上下文 available here。
这里 another answer 介绍了如何在保持 .vue
组件的同时保持灵活性。
extendroutes 解决了这个问题
extendRoutes(routes, resolve) {
routes.push({
name: 'detailed-category',
path: '/detail/:categoryType/:subCategoryType?/:title',
component: resolve('pages/detail.vue'),
});
},
我用一页来显示类别和子类别的详细信息。我不使用 router.js 来覆盖它,我想使用 nuxt 动态页面来解决这个问题。
url: "/news/afghanistan-81291"
url:"/gallery/technology/apple-revenue-81260"
url:"/world/economy/turkey-economy-81260"
我的本地主机 url 应该看起来像 (page-name/category/:subcategory?)
http://localhost:3000/detail/news/afghanistan-81291
http://localhost:3000/detail/gallery/technology/apple-revenue-81265
http://localhost:3000/detail/world/economy/turkey-economy-81240
在 .nuxt 路由器 js 中
{
path: "/detail",
name: "detail",
children: [{
path: "category/:subcategory",
name: "detail-category-subcategory"
},
...
}
这看起来不是一个好的做法,我需要最佳做法。
您可以在页面内部使用这种结构
- detail
-- - news
-- -- - _slug.vue
-- -- gallery
-- -- -- _tech
-- -- -- -- _slug.vue
-- -- world
-- -- -- _category
-- -- -- -- _slug.vue
您不需要离开您的页面并且可以在一个地方处理所有事情(并且靠近您的代码)。
文档中的更多上下文 available here。
这里 another answer 介绍了如何在保持 .vue
组件的同时保持灵活性。
extendroutes 解决了这个问题
extendRoutes(routes, resolve) {
routes.push({
name: 'detailed-category',
path: '/detail/:categoryType/:subCategoryType?/:title',
component: resolve('pages/detail.vue'),
});
},