
主要有以下几个步骤:
(1) 设置好路由配置
routermap({
'/history/:deviceId/:dataId': {
name: 'history', // give the route a name
component: { }
}
})
这里有2个关键点:
a)给该路由命名,也就是上文中的 name: 'history',
b)在路径中要使用在路径中使用冒号开头的数字来接受参数,也就是上文中的 :deviceId, :dataId;
(2)在v-link中传递参数;
<a v-link="{ name: 'history', params: { deviceId: 123, dataId:456 }}">history</a>
这里的123,456都可以改用变量。
比如该template所对应的组件有2个变量定义如下:
data: function() {
return {
deviceId:123,
dataId:456
}
}
此时上面那个v-link可以改写为:
<a v-link="{ name: 'history', params: { deviceId: deviceId, dataId: dataId }}">history</a>
(3)在router的目标组件上获取入参
比如在router目标组件的ready函数中可以这么使用。
ready: function(){
consolelog('deviceid: ' + this$routeparamsdeviceId);
consolelog('dataId: ' + this$routeparamsdataId);
}
应用场景:拥有共同父级页面的两个页面传参
原理:vue一个新的实例,类似于一个站,连接着两个组件,也就是一个中央事件总线;
实战:
1在需要传参的页面引入Bus文件
2通过Bus$emit('name','value')传参
(pass:$emit实例方法触发当前实例(这里的当前实例就是bus)上的事件,附加参数都会传给监听器回调。)
1在需要接收的页面引入Bus文件
2通过Bus$on("name", data => {});接收
(pass:on:监听当前实例上的自定义事件(此处当前实例为bus)。事件可以由emit触发,回调函数会接收所有传入事件触发函数($emit)的额外参数。)
最近,由于工作需要,需要去面试一些前端,由于自己是那种实 *** 型的程序猿,不擅长这方面,但是没办法,只能硬着头皮上,第一次有些紧张,后来慢慢就好了,在过程中,发现面试别人自己可以系统的学到很多知识,比如说有些原理性的东西,系统的知识,就可以在学习一遍,并且比之前理解的更透彻了,所以说,什么时候都可以学习,加油吧,骚年。
取参方法:
真的是学无止境,好多时候还是要注意好多细节的东西,否则学到的就只是皮毛。以上为我项目过程中遇到的坑以及总结的经验,若有什么错误的地方,还请伙伴们多多指正。
以上就是关于vue this.router 怎么传递参数全部的内容,包括:vue this.router 怎么传递参数、vue兄弟组件传参、vue $router 路由传参的3种方法详解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)