$router是通过Vue.use(VueRouter)和VueRouter构造函数得到一个router的实例对象,包含了一些路由的跳转方法,钩子函数等
$route是路由信息对象,里面主要包含路由的一些基本信息,包括name、meta、path、hash、query、params、fullPath、matched、redirectedFrom
路由传参差异
1 路径上直接拼接
this.$router.push('/loginreturn_url=' + encodeURIComponent(router.currentRoute.fullPath))
//router.currentRoute.fullPath 意思是为在js中获取当前路由路径的信息
//encodeURIComponent()为转码
2 query+path传递
this.$router.push({
path: '/login',
query: {
return_url: this.$route.fullPath
}
})
//this.$route.fullPath 意思为在组件内获取当前路由路径的信息 这样传递参数无需转码
3params+name传递
这里不做过多赘述
在页面展示上的差异
路径注意点 以 / 开头的会被当做路径,就不会一直嵌套之前的路径