小谢第34问:vue中路由传参params 和 query区别
举个栗子作对比:
使用params:
this.$router.push({ name: 'paramsRouterUrl',params:{'属性':'属性值'}})
使用query:
this.$router.push({ path: '/queryRouterUrl',query:{'属性':'属性值'}})
1、params路由卸载name后,而query传参name\path都可以传递路由
2、params传参类似于get请求,会把传递的参数拼接到路由后面,在url中展示
····query传参在地址栏中不显示参数
3、params传参数时候,再次刷新参数就会消失,query不会
注:
router是VueRouter的一个对象,通过Vue.use(VueRouter)和VueRouter构造函数得到一个router的实例对象,这个对象中是一个全局的对象,他包含了所有的路由包含了许多关键的对象和属性。
$router.push({path:'login'});本质是向history栈中添加一个路由,在我们看来是 切换路由,但本质是在添加一个history记录;
而route是一个跳转的路由对象,每一个路由都会有一个route对象,是一个局部的对象,可以获取对应的name,path,params,query等
总结:建议使用query传参
既然许愿了,就努力去实现