vue底层源码的总结(简版,面试够用还能装b)

1.什么是数据代理

是在实例化MVVM的时候传入一个配置对象,拿到配置对象里面的data,调用object.keys方法对传入的data进行遍历,在调用proxy.data方法传入data中每一个属性,在调用object.proptype方法给vm实例对象中的data添加数据,并且重写get和set方法

2.什么是数据劫持

开始进行数据劫持,遍历 data 对象中所有的属性,定义响应式的数据,创建 dep 对象,进
行 深度递归数据劫持,调用 object.defineProperty() 方法,为劫持对象的 data 属性添加
data 对象中的每个属性,重写 get 和 set 方法;数据劫持完毕后,每个属性会产生对应的
dep 对象

3.v-model的原理

本质就是模板解析和数据劫持

也可以扩展出MVVM,model vue vue model ,是vue跟model的一个双向数据绑定,视图改变数据改变,数据改变视图改变

4.模板解析(简版)

首先 Vue 中是有模板解析存在的;
模板解析发生在数据代理和数据劫持之后,
首先创建编译实例对象,传入选择器和vm实例对象,内部存储vm,通过选择器获取模板容
器对象,创建文档碎片对象,把模板容器中所有的节点全部都放进文档碎片对象中:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值