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    //深度监听

    }

}

你可能感兴趣的:(vue面试汇总)