vue router怎么传参呢?不知道的小伙伴来看看小编今天的分享吧!
vue router传递参数有三种方法:
方法一:使用name传递
接收参数:
在我们需要接收它的页面里添加
<p>我是router-name:{undefined{$route.name}}</p>
比如在这里是在APP.vue中接收的,希望切换每个页面都能看见参数。
看结果:
方法二:用to来传递
利用router-link 中的to来传参,看语法:
<router-link v-bind:to="{name:'xxx',params:{key:value}}"></router-link>
a.首先:to需要绑定;
b.传参使用类似与对象的形式;
c.name就是我们在配置路由时候取的名字;
d.参数也是采用对象的形式。
实际操作一下:
a.在APP.vue中将to里面的路径改成上面那样
<router-link :to="{name:'hellovue',params:{username:'tomcat'}}">hellovue页面</router-link>
这里我们注意to的写法,前面加了冒号,因为那是绑定的,传递一个username过去,值为tomcat
b.在index.js里面给hellovue配置名字叫hellovue,与上面name相对应
c、在hellovue.vue中接收参数
<p>传递的名字是:{{$route.params.username}}</p>
看看结果:
方法三:采用url传参
在路由文件里采用冒号的形式传参,这就是对参数的绑定
a、修改index.js里的path,这里我们修改myjob.vue组件
b、在App.vue组件里传递参数
c、在myjob.vue组件里显示我们要展示的内容(接收参数)
d、看看结果
以上就是小编今天的分享了,希望可以帮助到大家。
vue中router常见的三种传参方式
目录:我们在使用vue开发的过程中使用router跳转的时候肯定会遇到传参的情况;一般情况就三种传参是最常见的;那我们就来看看都有那几种传参方式吧!
第一种:{  path: '/mall:id',  name: 'Mall',  component: lazyLoadMall('mall') }
this.$router.push(`/mall${0}`)
获取参数:
console.log(this.$route.params) // 这儿原来写错了;感谢 @用户5158362048184 提出并修改第二种:
this.$router.push({ name: 'Mall', query: { id: 0 } })
获取参数:
console.log(this.$route.query)第三种:
this.$router.push({ name: 'Mall', params: { id: 0 } })
获取参数:
console.log(this.$route.params)
注意:第三种传参在刷新后数据会丢失;可以用JSON.stringify()进行传参避免在刷新以后数据丢失的情况
如果有什么不对的地方;欢迎大家补充;相互学习、共勉