欢迎光临散文网 会员登陆 & 注册

千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)

2023-07-20 20:25 作者:可爱顽皮的羊毛卷  | 我要投稿

1.解释单向数据流和双向数据绑定

对于Vue来说,组件之间的数据传递具有单向数据流这样的特性称为单向数据流,单向数据流(Unidirectional data flow)方式使用一个上传数据流和一个下传数据流进行双向数据通信,两个数据流之间相互独立,单向数据流指只能从一个方向来修改状态。

而双向数据绑定是指当数据发生变化时,视图也发生变化,当视图发生变化,数据也会同步发生变化。两个数据流之间相互影响。


2.Object.defineProperty有什么缺点

1.无法监听es6的Set、Map变化;

2.无法监听Class类型的数据;

3.属性的添加和删除也无法监听;

4.数组元素的增加和删除也无法监听。


3.你知道Vue响应式数据原理吗?Proxy与Object.defineProperty优劣对比?


//响应式原理:

vue的响应式实现主要是利用了object.defineProperty方法里面的setter与getter方法的观察者模式来实现。在组件初始化时会给每一个data属性注册getter和setter,然后再new一个自己的Watcher对象,此时watcher会立即调用组件的render函数去生成虚拟DOM。在调用render的时候,就会需要用到data的属性值,此时会触发getter函数,将当前的Watcher函数注册进sub里。当data属性发生改变之后,就会遍历sub里所有的watcher对象,通知它们去重新渲染组件。


//proxy的优势如下:

Proxy可以直接监听对象而非属性,可以直接监听数组的变化;

Proxy有多达13种拦截方法,不限于apply、ownKeys、deleteProperty、has等等s是Object.defineProperty不具备的;

Proxy返回的是一个新对象。


//Object.defineProperty 的优势如下:

兼容性好,支持IE9,而Proxy的存在浏览器兼容性问题,而且无法用polyfill(垫片)来弥补。


4.生命周期

beforeCreate created beforeMount mounted beforeUpdate updated beforeDestory destroyed onUmmounted

beforeDestroy => beforeUnmount

destroyed => unmounted







千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)的评论 (共 条)

分享到微博请遵守国家法律