小谢第34问:vue中路由传参params 和 query区别

举个栗子作对比:

使用params:

this.$router.push({ name: 'paramsRouterUrl',params:{'属性':'属性值'}}) 

使用query:

this.$router.push({ path: '/queryRouterUrl',query:{'属性':'属性值'}})  

1、params路由卸载name后,而query传参namepath都可以传递路由

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传参

原文地址:https://www.cnblogs.com/xieoxie3000question/p/13254414.html