• 技术文章 >web前端 >Vue.js

    10个关于路由vue-router的vuejs面试题(含答案解析)

    青灯夜游青灯夜游2021-04-09 19:24:12转载1193
    本篇文章给大家介绍10个中关于路由vue-router的vuejs面试题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

    路由 vue-router 面试题

    1. mvvm框架是什么?

    mvvm即Model-View-ViewModel,mvvm的设计原理是基于mvc的

    MVVM是Model-View-ViewModel的缩写,Model代表数据模型负责业务逻辑和数据封装,View代表UI组件负责界面和显示,ViewModel监听模型数据的改变和控制视图行为,处理用户交互,简单来说就是通过双向数据绑定把View层和Model层连接起来。在MVVM架构下,View和Model没有直接联系,而是通过ViewModel进行交互,我们只关注业务逻辑,不需要手动操作DOM,不需要关注View和Model的同步工作

    2. vue-router是什么?有哪些组件?
    3. active-class 是哪个组件的属性?

    active-class是router-link终端属性,用来做选中样式的切换,当router-link标签被点击时将会应用这个样式

    4. 怎么定义vue-router的动态路由?怎么获取传过来的值?
    {
      path: '/details/:id'
      name: 'Details'
      components: Details
    }

    访问details目录下的所有文件,如果details/a,details/b等,都会映射到Details组件上。

    console.log(this.$route.params.id)
    5. vue-router有哪几种导航钩子?
    const router = new VueRouter({})
    router.beforeEach((to, from, next) = {
      // to do somethings
    })
    * next 方法必须调用,否则钩子函数无法resolved
    router.afterEach((to, from) = {
     // to do somethings
    })
    const router = new VueRouter({
      routes: [
        {
          path: '/home',
          component: Home,
          beforeEnter: (to, from, next) = {
            // to do somethings
            // 参数与全局守卫参数一样
        	}
        }
      ]
    })
    const Home = {
      template: `<div</div`,
      beforeRouteEnter(to, from, next){
        // 在渲染该组件的对应路由被 confirm 前调用
        // 不能获取组件实例 ‘this’,因为当守卫执行前,组件实例还没被创建
      },
      beforeRouteUpdate(to, from, next){
        // 在当前路由改变,但是该组件被复用时调用
        // 例:对于一个动态参数的路径 /home/:id,在/home/1 和 /home/2 之间跳转的时候
        // 由于会渲染同样的 Home 组件,因此组件实例会被复用,而这个钩子就会在这个情况下被调用。
        // 可以访问组件实例 'this'
      },
      beforeRouteLeave(to, from, next){
        // 导航离开该组件的对应路由时调用
        // 可以访问组件实例 'this'
      }
    }
    const Home = {
      template: `<div</div`,
      beforeRouteEnter(to, from, next){
        next( vm = {
          // 通过 'vm' 访问组件实例
        })
      }
    }

    【相关推荐:vue.js教程

    6. $route和 $router的区别是什么?
    7. vue-router响应路由参数的变化
    // 监听当前路由发生变化的时候执行
    watch: {
      $route(to, from){
        console.log(to.path)
        // 对路由变化做出响应
      }
    }
    beforeRouteUpdate(to, from, next){
      // to do somethings
    }
    8. vue-router 传参
      // 传递参数
      this.$router.push({
        name: Home,
        params: {
        	number: 1 ,
        	code: '999'
      	}
      })
      // 接收参数
      const p = this.$route.params
    // 传递参数
    this.$router.push({
      name: Home,
      query: {
      number: 1 ,
      code: '999'
    }
                      })
    // 接收参数
    const q = this.$route.query
    9. vue-router的两种模式
    window.onhashchange = function(event){
      console.log(event.oldURL, event.newURL)
      let hash = location.hash.slice(1)
    }
    10. vue-router实现路由懒加载(动态加载路由)
    const router = new VueRouter({
      routes: [
        {
          path: '/home',
          name: 'Home',
          component:() = import('../views/home')
    		}
      ]
    })

    以上是经过参考很多同行分享与官方文档,汇总的一份总结,如有不对,请指出,最后感谢大家观看,求点赞,求分享,求评论,求打赏~~

    更多编程相关知识,请访问:编程视频!!

    以上就是10个关于路由vue-router的vuejs面试题(含答案解析)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:csdn,如有侵犯,请联系admin@php.cn删除
    专题推荐:vue 路由 面试题
    上一篇:如何使用vue改变css样式 下一篇:一招搞定Chome最新版vue-devtools安装
    大前端线上培训班

    相关文章推荐

    • react和vue的区别及优缺点是什么• 怎么解决phpStorm使用vue提示"Attribute v-xxx is not allowed here"的问题• 20+道必知必会的Vue面试题(附答案解析)• Vue常见面试题汇总(附答案解析)• 如何使用vue改变css样式

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网