vue 源码解析

vue 源码解析:

1: 数据劫持: vue.js 则死采用数据劫持的方式结合发布者 - 订阅者模式的方式, 通过Object.defineproperty() 来进行劫持各个属性的setter, 和 getter , 在数据变动的时候发布消息给订阅者, 触发相应的监听回调。

2: 在new vue 的实例的时候, 会监听属性, 一个类。 需要一个观察者,劫持一个属性, 通过Object.defineproperty() 中的 getter 和 setter 方法,

有多个属性就会创建多个观察者, 但是观察者有一堆, 就需要放到观察者容器中,这个容器叫做订阅器。订阅器是一个数组, 可以和我们的observer 进行关联,

更新视图就是更新节点,  入口函数传递过来一些数据:  通过object,defineproperty() 通过数据劫持,setter 和 getter 方法: 一旦数据发生变化就会通知订阅器找到对应的订阅者。 然后去更新对应的视图。

订阅器的作用: 有两个作用: 通知watcher (订阅器更新视图)   第二: 存放多个订阅器

 watcter : 作用就是更新视图。  observer: 作用就是就是通过object.defineproperty() 劫持数据,  complie:  解析el 模板中的指令。 使用正则表达式进行指令, muster 语法解析。

 watcher: 是一个订阅者,   ob: 是监听器:

1 : 首先实现一个指令的解析器: complie

2:  实现一个数据监听器  observer

3:  去实现一个 watcher 更新视图  (数据监听器)

4:实现一个proxy 代理

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值