Javascript VueJS路由参数对象
我正在检查某人的代码。它们的计算结果如下:Javascript VueJS路由参数对象,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我正在检查某人的代码。它们的计算结果如下: computed: { requireParams() { return { coach: this.coach, sid: this.sid }; }, coach() { return this.$route.params.coach || {}; }
computed: {
requireParams() {
return {
coach: this.coach,
sid: this.sid
};
},
coach() {
return this.$route.params.coach || {};
},
sid() {
return this.$route.params.sid || null;
},
avatar() {
if (
this.coach.profile_pic &&
this.coach.profile_pic.indexOf("http") !== -1
) {
return this.coach.profile_pic;
} else {
return "/images/_avatar.jpg";
}
}
}
现在在html模板代码中,coach被多次引用,如下所示
<p class="name">{{coach.last_name}}{{coach.first_name}}</p>
{{coach.last_name}{{coach.first_name}}
有人能解释一下coach是如何在路线中发送对象的吗?我认为只有字符串可以在路径中发送,比如/path/:id将转换为/path/2,所以$route.params将给出{id:2}
但在这里,长途汽车在路线上被访问,它显然是一个物体?我不明白这是怎么可能的我不确定这样做是否正确,但Vue允许您在路由器中传递对象。如果您有vuedevtools,您可以在vue$route部分下查看:路径、查询、参数、完整路径、名称和元数据。在params中,我们可以发送一个对象 例如,您的路线如下所示:
常数路由=[
{
路径:“/”,
姓名:'家',
组成部分:家庭
},
{
路径:'/about/:id',
姓名:'关于',
组件:()=>导入(/*webpackChunkName:“关于”*/'../views/about.vue')
}
]
之后,让我们创建一个按钮,在路由之间推送数据
发送我的对象
导出默认值{
姓名:'家',
数据(){
返回{
myObj:{
id:1,
姓名:“乔治”,
姓:“白”,
电话:123
}
}
},
方法:{
sendObject(){
this.$router.push({name:'About',params:{id:this.myObj.id,comingItem:this.myObj})
}
}
}
最后,让我们把我们的产品转到其他路线,如下所示:
这是我的目标
{{att}}
导出默认值{
姓名:“关于”,
数据(){
返回{
myItem:空
}
},
创建(){
this.myItem=this.$route.params.comingItem
}
}
Dom将类似于:
一,
乔治
白色
123.我不确定这样做是否正确,但Vue允许您在路由器中传递对象。如果您有vuedevtools,您可以在vue$route部分下查看:路径、查询、参数、完整路径、名称和元数据。在params中,我们可以发送一个对象 例如,您的路线如下所示:
常数路由=[
{
路径:“/”,
姓名:'家',
组成部分:家庭
},
{
路径:'/about/:id',
姓名:'关于',
组件:()=>导入(/*webpackChunkName:“关于”*/'../views/about.vue')
}
]
之后,让我们创建一个按钮,在路由之间推送数据
发送我的对象
导出默认值{
姓名:'家',
数据(){
返回{
myObj:{
id:1,
姓名:“乔治”,
姓:“白”,
电话:123
}
}
},
方法:{
sendObject(){
this.$router.push({name:'About',params:{id:this.myObj.id,comingItem:this.myObj})
}
}
}
最后,让我们把我们的产品转到其他路线,如下所示:
这是我的目标
{{att}}
导出默认值{
姓名:“关于”,
数据(){
返回{
myItem:空
}
},
创建(){
this.myItem=this.$route.params.comingItem
}
}
Dom将类似于:
一,
乔治
白色
123.look in router.jscomputed properties可以被注入模板,你可以在这里找到文档,看看我的编辑,代码工作如何?或者
{{coach.last_name}{{coach.first_name}}
呈现为undeindedefined
look in router.jscomputed属性可以注入到模板中,您可以在这里找到文档查看我的编辑请查看代码工作?或者{{coach.last_name}}{{coach.first_name}}
呈现为未定义的
我以为在$route.push中传递对象({name:xxx,参数:{obj:{test test'}})
不可能,因为我总是遇到一个错误,必须对对象进行字符串化,因为错误表明只能在参数中发送字符串。你确定上面的代码有效吗?是的,我以前试过并使用过。所以我确信:)我认为在$route.push({name:xxx,params:{obj:{test:{test:'test'}}}}}})中传递对象是不可能的,因为我总是遇到一个错误,必须将对象字符串化,因为错误表明只有字符串可以在params中发送。你确定上面的代码有效吗?是的,我以前试过并使用过。所以我敢肯定:)