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中发送。你确定上面的代码有效吗?是的,我以前试过并使用过。所以我敢肯定:)