路由配置:
// 首页
{
path: '/home',
name:'home',
component:Home
},
// 行情
{
path: '/markets',
name:'market',
component:Market
},
query传值和接收方式:
传值
//第一种方式(字符串方式)
this.$router.push('/markets?id=1&name=饭饭') //第二种方式(path方式)
this.$router.push({path:'/markets',query:{id:1,name:'饭饭'}}) //第三种方式(name方式)
this.$router.push({name:'market',query:{id:1,name:'饭饭'}})
URL显示:
http://localhost:19091/#/markets?id=1&name=fanfan
接收数据
console.log(this.$route.query.id); // 1
console.log(this.$route.query.name);// 饭饭
params传值和接收方式:
传值
//第一种方式
this.$router.push('/markets/1/饭饭')
//第二种方式
this.$router.push({path:'/markets',params:{id:1,name:'饭饭'}})
URL显示
//第一种方式:(此时参数值在url种显示)
http://localhost:19091/#/markets/1/饭饭 //第二种方式:(此时参数及参数值都不在url种显示)
http://localhost:19091/#/markets
对于第一种方式的路由需要改为下边的配置,第二种方式不需要修改路由
// 首页
{
path: '/home',
name:'home',
component:Home
},
// 行情
{
path: '/markets/:id/:name',
name:'market',
component:Market
},
接收数据
console.log(this.$route.params.id);//
console.log(this.$route.params.name);//饭饭
总结:query和params传参方式不同之处在于,query传参会在url中显示参数以及参数值,params方式则不显示或者只显示对应值,且以‘/’方式显示,params方式不能用path方式传递参数,接收方式也不同