$router 和 $route
$router 是路由探作对象,只写对象
$route 是路由信息,只读对象
// 跳转路由传递参数
this.$router.push({
path: "/modelDetail",
query: {
url: res.rows[0].download_url
}
});
// 获取路由传递过来的参数
this.$route.query.url
关于路由传递参数query和params
query 会把路由传递的参数暴露在地址栏上,不太安全,但是刷新还是可以获取到数据
// query写法
this.$router.push({
path: "/modelDetail",
query: {
url: res.rows[0].download_url
}
});
params 使用name进行传递参数,这个name是表示要达到的路由的name,不过这种传参方式刷新的时候数据会没掉
解决方法:就是占位符,在路由的path的路径上添加,比如要id
可以是: path: /modelDetail/:id,不过这样子也会导致参数带在路由的后面
// params
this.$router.push({
name: "modelDetail",
query: {
url: res.rows[0].download_url
}
});
// 占位符写法
{
path: '/modelDetail/:id',
component: (resolve) => require(['@/views/show/model/model-viewer'], resolve),
hidden: true
},
以上我是个人的理解哈!!