前端面试题--Vue篇

手写一下Vue2.0 数据劫持

基本流程描述清楚,不仅仅是object.defineProperty对数据进行get和set这么简单。总结一下主要流程:

(1): 在初始化的时候:保存一下实例,挂载实例。通过initState方法来初始化数据,这里主要是 data数据,也有computed 和 watch 需要处理。

(2): 调用initData(); 重新赋值data,然后执行data,修改用户获取data属性的写法统一为 this.xxx同时observe(data)

(3):在observe(data)的时候需要对data进行判断,如果是引用类型需要加上一个观察者 observer,同时在观察者终判断data是为数组还是对象,对象直接重新触发 object.defineProperty,同时对内部重新observe。如果是数组直接重新7种数组方法,然后对数组内部接着observe。

https://juejin.cn/post/6935354560718307365


前端面试题--Vue篇
http://example.com/2023/04/24/前端面试题-Vue篇/
作者
lyric
发布于
2023年4月24日
许可协议