path 和params 同时使用,会忽略 params
this.$router.push({path:'/book', params:{id:'123213'}})
// 这实际上与下面相同
this.$router.push({path:'/book'})
// 实际访问路径为 /book
path和query可以同时使用
this.$router.push({path:'/book',query:{a:1}})
// 实际访问的页面路径为 /book?a=1
通过params或query传参,会默认对参数进行编码encodeURIComponent
this.$router.push({name:'PathUrl',params:{url:'http://www.baidu.com'}})
// 上面路由,实际访问地址为 /pathurl/http%3A%2F%2Fwww.baidu.com
this.$router.push({name:'PathUrl',query:{url:'http://www.baidu.com'}})
// 上面路由,实际访问地址为 /pathurl?url=http%3A%2F%2Fwww.baidu.com
在this.$route里访问params和query里的参数,会进行一次decodeURIComponent
// 当前路径为:
// /pathurl/http%3A%2F%2Fwww.baidu.com
// query /pathurl?url=http%3A%2F%2Fwww.baidu.com
this.$route.params.url // http://www.baidu.com
this.$route.query.url // http://www.baidu.com