美文网首页vue2 世界
【面试题】Vue中的$router 和 $route的区别

【面试题】Vue中的$router 和 $route的区别

作者: 前端末晨曦吖 | 来源:发表于2022-08-27 09:44 被阅读0次

    Vue中的router 和route的区别

    点击视频讲解更加详细

    this.$route:当前激活的路由的信息对象。每个对象都是局部的,可以获取当前路由的 path,
     name, params, query 等属性。
    
    this.$router:全局的 router 实例。通过 vue 根实例中注入 router 实例,然后再注入到每个
    子组件,从而让整个应用都有路由功能。其中包含了很多属性和对象(比如 history 对象),任何
    页面也都可以调用其 push(), replace(), go() 等方法。
    

    路由跳转分为编程式和声明式

    声明式:

    简单来说,就是使用 router-link 组件来导航,通过传入 to 属性指定链接(router-link 默认会被渲染成一个a标签)。

    编程式:

    采用这种方式就需要导入 VueRouter 并调用了。

    src\router\index.js

    import Vue from 'vue';
    import VueRouter from 'vue-router';
    
    Vue.use(VueRouter)
    
    // 1. 定义一些路由
    // 每个路由都需要映射到一个组件。
    const routes = [
        { path: '/home', component: ()=> import('../views//home.vue') },
        { path: '/about', component: ()=> import('../views/about.vue') },
    ]
    
    const router = new VueRouter({
        // mode: 'hash',       //默认是hash模式,url是带#号的
        mode: 'history',     //history模式url不带#号
        routes
      })
      
    export default router
    

    src\views\home.vue

    <template>
      <div id="app">
        <h1>home</h1>
        <button @click="handerHerf">跳转</button>
      </div>
    </template>
    <script>
    export default {
      name: 'App',
      data(){
        return {
          
        } 
      },
      mounted() {
        
      },
      components:{
        
      },
      methods:{
        handerHerf(){
          console.log('this.$router',this.$router)
          this.$router.push('/about')
        }
      }
    }
    </script>
    
    <style scoped>
    
    </style>
    

    src\views\about.vue

    <template>
      <div>
        <h1>about</h1>
      </div>
    </template>
    
    <script>
    export default {
      name: 'about',
      data(){
        return {
          
        } 
      },
      created(){
        console.log('this.$route',this.$route)
      },
      mounted() {
         
      },
      computed:{
        
      },
      methods:{
        
      }
    }
    </script>
    
    <style scoped>
    
    </style>
    

    this.$router参数详情

    1111111111111.png

    this.$route参数详情

    2222222222222222.png

    若对您有帮助,请点击跳转到B站一键三连哦!感谢支持!!!

    相关文章

      网友评论

        本文标题:【面试题】Vue中的$router 和 $route的区别

        本文链接:https://www.haomeiwen.com/subject/oliqnrtx.html