vue面试汇总

1.vue数据双向绑定的原理

视图更新数据模型:通过事件对象改变数据模型;比如:input绑定输入事件监听修改data的属性;

数据模型更新视图:1.构建一个监听器,监听data属性是哪一个变化了,监听到后执行每个对象的object.defineProperty的set方法,然后执行update方法进行视图更新,需要dom解析器找到绑定是值,然后进行赋值。

2.route实现跳转的原理

hash模式:通过在url后面添加#/并不会向服务器请求数据,也不会导致浏览器的刷新,通过监听hashchange来知道路由的变化,对应加载不同的模板即可;

history模式:通过window.history,pushState 和 replaceState,通过这两个 API 可以改变 url 地址且不会发送请求。同时还有 popstate 事件。但是如果刷新浏览器的时候,则会发起请求,此时需要服务器的支持,需要把所有路由都重定向到根页面。

3.vue如何实现对象的深监听

watch虽可监听,但只是浅监听,只监听数据第一层或者第二层。例:let obj = {name: 'xx', child: {age: 11}};

watch: {

    ' user.phone ' : {

        handler:function() {   //特别注意,不能用箭头函数,箭头函数,this指向全局

            处理函数

        },

        deep: true    //深度监听

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:什么是闭包?闭包的用处? (1)闭包就是能够读取其他函数内部变量的函数。在本质上,闭包就 是将函数内部和函数外...
    xuguibin阅读 13,271评论 1 52
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,802评论 1 32
  • 【转载】CSDN - 张林blog http://blog.csdn.net/XIAOZHUXMEN/articl...
    竿牍阅读 8,796评论 1 14
  • VUE Vue :数据驱动的M V Vm框架 m :model(后台提供数据),v :view(页面),vM(模板...
    wudongyu阅读 10,753评论 0 11
  • 女孩啊,女孩 文/不颠 她有一双柔情似水的眼睛 那天边的云彩仿佛为她招摇 她可爱的脸蛋上露出天使般的貌美 她是个笑...
    远方和梦想阅读 3,424评论 4 10