vue中关于路由的问题

this.$route和this.$router的区别是什么,作用又是什么。请大神解答一下

阅读 2k
1 个回答
$router多用于路由的跳转 可以理解为动作需要
this.$router.push(path:'/');//不带参数
this.$router.push(path:'/',query:{id:1});//带参数
this.$router.go(-1);//路由往回一个
this.$router.go(0);//重载路由

$route多用于访问路由中的数据,可以理解为名词
console.log($route) //拿到路由的所有数据
console.log($route.path) //拿到当前路由的路径
console.log($route.name) //拿到当前路由的名字,如果你定义过
也可以用于监听
watch:{
    '$route':()=>{
        if(this.$route.name==='details'){
            alert('当前是详情页')
        }
    }
}
还有一个区别是router是一个全局的变量,一般在main.js里面与一下代码
const router = new VueRouter({
  routes // (缩写)相当于 routes: routes
})
router 就是一个全局的,他掌管路由的跳转之类的。可以在组件用来跳转路由。
而route会被注册到每一个组件当中去。你访问的会是当前组件的路由信息。
参考https://segmentfault.com/a/1190000009392552
推荐问题
宣传栏