我正在构建具有产品列表的Nuxt应用程序,然后单击其中一个打开产品的专用页面。一切正常。
结构是:
/pages/featured // directory of products
/pages/product/:id/:slug // Dedicated product page
现在,我想添加一个新功能:
- 如果从非产品目录的页面中单击或人们直接登陆该产品,我希望保留该产品的专用页面;
- 如果希望从目录中单击,我希望在目录顶部打开一个几乎全屏的产品对话框。
- 在对话框上保留路由更改。
我希望实现的一个很好的例子是Youpic的照片目录。
“产品”列表,在带有内部导航的对话框中完全可见。
我正在查看各种nuxt-routing和vue-router文档以尝试进行开发,但距离解决方案还差得远。
我在这里看到的一小部分代码看起来与我所需的代码非常相似,但我不明白如何正确实现它以及如何创建nuxt自定义路由:
export default {
router: {
extendRoutes (routes, resolve) {
routes.push({
path: '/users/:id',
components: {
default: resolve(__dirname, 'pages/users'), // or routes[index].component
modal: resolve(__dirname, 'components/modal.vue')
},
chunkNames: {
modal: 'components/modal'
}
})
}
}
}
我对您的要求的理解是,查看https://youpic.com/explore是您要的
https://www.example.com/featured (directory of products)
路线,然后单击要打开的产品对话框,该对话框将全屏显示为https://www.example.com/product/:id/:slug (Details page)
。如果我错了,请纠正我!
现在,您可以通过两种方式实现
1)点击每个产品(即
https://www.example.com/featured (directory of products)
路线),并使用nuxt-link
重定向到https://www.example.com/product/:id/:slug (Details page)
路线2)在单击每个产品(即
https://www.example.com/featured (directory of products)
路线)后,手动使用来更新路线router.push
并打开对话框现在,如果我们看到https://youpic.com/explore,让我们以此为
Nuxt
代码结构将是pages/explore
他们手动更新路由router.push
到https://youpic.com/image/16660875/steffi-by-fs22photography但是当你共享/接受它URL(https://youpic.com/image/16660875/steffi-by-fs22photography)
并尝试打开它,因此,如果您直接看到https://youpic.com/image/16660875/steffi-by-fs22photography,则Nuxt code structure
必须保留pages/image/:id/:slug
实际上将是一页的页面。希望对你有帮助!!
如果您有任何疑问,我们可以讨论更多!