$router
router是VueRouter的一个对象,通过Vue.use(VueRouter)和VueRouter构造函数得到一个router的实例对象,这个对象中是一个全局的对象,他包含了所有的路由包含了许多关键的对象和属性。
1.router.go()和router.back()
页面路由跳转router.go(1)为前进。router.go(-1)
2.router.push()
push方法和<router-link :to="...">是等同的。
注意:我们看来是切换路由,但本质是在添加一个history记录,可搭配router.back来回跳转
3.router.repalce()
跟push方法行为一样,但replace方法没有history记录会直接替换当前页面。
$route
route是一个跳转的路由对象,每一个路由都会有一个route对象,是一个局部的对象,可以获取对应的name,path,params,query等
1. route.router 路由规则所属的路由器(所属的组件)。
2.route.name 当前路径的名字。
3.route.path 字符串,等于当前路径对象的路径会被解析为绝对路径,如"/index/"。
4.route.params 一个key/value对象,包含路由中的动态片段和全匹配片段,如果没有路由参数就是个空对象。
5.route.query 一个key/value对象,包含路由中查询参数的键值对。例如:对于/index?name=doris,会得到$route.query.name == doris。
params传参和query传参的区别:
- params参数在地址栏中不会显示,query会显示
- 网页刷新后params参数会不存在
this.router.push({path:'/Login',params:{id:7}})
this.router.push({path:'/Login',query:{id:7}})
params: http://localhost:8080/#/Login\
query: http://localhost:8080/#/Login?id=7
6.route.matched 数组,包含当前匹配的路径中所包含的所有片段所对应的配置参数对象。
其中path,params.name.query这几个属性主要用于接收路由传递的参数。
简单理解为,router是用来操作路由的,route是用来获取路由信息的