Dep

功能

  • 收集依赖,添加观察者(watcher)

  • 通知所有观察者

class Dep {constructor() {// 存储所有的观察者this.subs = []}// 添加观察者addSub (sub) {if (sub && sub.update) {this.subs.push(sub)}}// 通知所有观察者notify () {this.subs.forEach(sub => {sub.update()})}
}
// 以下代码在 Observer 类中 defineReactive 方法中添加
// 创建 dep 对象收集依赖
const dep = new Dep()
// getter 中
// get 的过程中收集依赖
Dep.target && dep.addSub(Dep.target)
// setter 中
// 当数据变化之后,发送通知
dep.notify()

Vue (响应式原理-模拟-4-Dep)相关推荐

  1. Vue (响应式原理-模拟-2-Observer)

    Observer 功能 负责把 data 选项中的属性转换成响应式数据 data 中的某个属性也是对象,把该属性转换成响应式数据 数据变化发送通知 添加 Dep 和 Watcher 的依赖关系 数据变 ...

  2. Vue (响应式原理-模拟-0)

    Vue 把data中的成员注入到Vue实例,并且把data中的成员转化为getter/setter Observer 能够对数据对象的所有属性进行监听,如有变动可以拿到最新值并通知Dep Vue 功能 ...

  3. Vue (响应式原理-模拟-5-Watcher)

    Watcher 功能 当数据变化触发依赖, dep 通知所有的 Watcher 实例更新视图 自身实例化的时候往 dep 对象中添加自己 class Watcher {constructor(vm, ...

  4. Vue (响应式原理-模拟-1-vue)

    Vue 功能 负责接收初始化的参数(选项) 负责把 data 中的属性注入到 Vue 实例,转换成 getter/setter 负责调用 observer 监听 data 中所有属性的变化 负责调用 ...

  5. Vue (响应式原理-模拟-3-Compiler)

    Compiler 功能 负责编译模板,解析指令/插值表达式 负责页面的首次渲染 当数据变化后重新渲染视图 // 负责解析指令/插值表达式 class Compiler {constructor(vm) ...

  6. 模拟Vue响应式原理

    模拟Vue响应式原理 设计模式 发布订阅模式 我们假定,存在一个"信号中心",某个任务执行完成,就向信号中心"发布"(publish)一个信 号,其他任务可以向 ...

  7. vue 数组删除 dome没更新_详解Vue响应式原理

    摘要: 搞懂Vue响应式原理! 作者:浪里行舟 原文:深入浅出Vue响应式原理 Fundebug经授权转载,版权归原作者所有. 前言 Vue 最独特的特性之一,是其非侵入性的响应式系统.数据模型仅仅是 ...

  8. Vue学习 — Vue响应式原理

    一. Object.defineProperty 在学习vue响应式原理之前,必须搞懂 Object.defineProperty. Object.defineProperty(obj, prop, ...

  9. 详解Vue响应式原理

    摘要: 搞懂Vue响应式原理! 作者:浪里行舟 原文:深入浅出Vue响应式原理 Fundebug经授权转载,版权归原作者所有. 前言 Vue 最独特的特性之一,是其非侵入性的响应式系统.数据模型仅仅是 ...

最新文章

  1. python email模块详解_python模块之email: 电子邮件编码解码 (一、解码邮件)-阿里云开发者社区...
  2. 使用OpenGL绘制圆环体(Torus)
  3. 下载MySQL并创建桌面数据库_sql桌面数据库
  4. asp.net mvc项目实例_降龙-第13章:MVC开发准备
  5. 0-2岁的app开发人员必读,Android开发APP前的准备事项
  6. Blazor带我重玩前端(三)
  7. YBTOJ:公共子串(KMP)
  8. html 表格套表格_HTML表格
  9. Informix常用操作方法命令
  10. shell死循环(whilefor)
  11. 《how to write and publish a scientific paper》 Chapter 4
  12. Python编程-继承和接口
  13. 中国四大运营商2G/3G/4G/5G工作频率以及网络制式
  14. activemq学习记录(二)(使用p2p模式和使用发布订阅模式去生产以及消费数据)
  15. 百度地图迁徙大数据_百度地图发布春运大数据,2020年返程规模下降六成
  16. Ethernet设备中网络变压器的作用
  17. cesium 添加geojson数据,创建白模,创建label标签,并使用canvas自定义聚合背景图片
  18. 详解IDEA JPI持久化 import database schema 对话框
  19. 使用malloc函数分配空间
  20. 蒟蒻重返c++,学海拾贝(二)

热门文章

  1. VMware vSphere 6.5配置系列
  2. 完善区块链产业链 加速经济数字化转型
  3. kali linux学习入门- Chrome浏览器安装,可以正常打开
  4. 返回值 包装类_(九)Java常用类
  5. react native bundle读取assets_react-native-easy-app 详解与使用之 (一)AsyncStorage
  6. nginx 4层代理配置
  7. MessageFormat 格式化String
  8. angularjs 事件指令
  9. xml特殊符号的书写
  10. Javascript -- 二叉树(查找删除功能实现)