首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Nuxt中将道具传递到页面?

如何在Nuxt中将道具传递到页面?
EN

Stack Overflow用户
提问于 2020-02-28 08:06:06
回答 2查看 7.4K关注 0票数 6

我所要做的就是传递一个参数给Nuxt中的一个页面。在Vue中,这很简单:

代码语言:javascript
复制
<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>

代码语言:javascript
复制
<router-link to="/user/123">User</router-link>

您只需要在router.js中正确定义您的路由。

我还没有找到在Nuxt中做这件事的方法。

在Nuxt文档中有一些关于使用下划线来定义动态路由here的引用,这太奇怪了。如何通过多个道具?如果你不想搞乱你的页面命名约定怎么办?

但在任何情况下,它都是行不通的。似乎只能通过访问this.$route.params.myprop来获取参数值,这是一种糟糕的as explained here实践。

那么,如何设置路由"/users/123",调用/pages中的Users.vue组件,并实际获取"123“作为道具呢?

(不,我不打算使用VueX。简单地使用全局状态来传递参数是非常糟糕的做法。)

EN

回答 2

Stack Overflow用户

发布于 2020-02-28 11:07:42

在Nuxt.js上创建动态路由时,建议使用下划线文件名系统。

如何传递多个道具?

文档中有针对dynamic nested routes的部分

代码语言:javascript
复制
pages/
--| _category/
-----| _subCategory/
--------| _id.vue
--------| index.vue
-----| _subCategory.vue
-----| index.vue
--| _category.vue
--| index.vue

这将为您提供一条:category/:subCategory/:id路由。

此外,您可以在nuxt.config.js中使用extendRoutes,或者如果您希望避免完全使用默认的Nuxt生成的路由,则可以使用router-module

票数 1
EN

Stack Overflow用户

发布于 2020-02-28 14:12:37

你是说像这样的东西吗?

代码语言:javascript
复制
<nuxt-link to="/user/:id">User</nuxt-link>

,然后在url栏中键入

代码语言:javascript
复制
http://yourDomain/user/123

在页面usercreated生命周期钩子中,您应该看到控制台日志123

代码语言:javascript
复制
created(){
   console.log("your id is: " + this.$route.params.id);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60443520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档