Vue (响应式原理-模拟-5-Watcher)
Watcher |
|
功能
|
|
|
|
|
class Watcher {constructor(vm, key, cb) {this.vm = vm// data 中的属性名称this.key = key// 当数据变化的时候,调用 cb 更新视图this.cb = cb// 在 Dep 的静态属性上记录当前 watcher 对象,当访问数据的时候把 watcher 添加到dep 的 subs 中Dep.target = this// 触发一次 getter,让 dep 为当前 key 记录 watcherthis.oldValue = vm[key]// 清空 targetDep.target = null // 防止重复添加}update () {const newValue = this.vm[this.key]if (this.oldValue === newValue) {return}this.cb(newValue)}
}
Vue (响应式原理-模拟-5-Watcher)相关推荐
- Vue (响应式原理-模拟-2-Observer)
Observer 功能 负责把 data 选项中的属性转换成响应式数据 data 中的某个属性也是对象,把该属性转换成响应式数据 数据变化发送通知 添加 Dep 和 Watcher 的依赖关系 数据变 ...
- Vue (响应式原理-模拟-4-Dep)
Dep 功能 收集依赖,添加观察者(watcher) 通知所有观察者 class Dep {constructor() {// 存储所有的观察者this.subs = []}// 添加观察者addSu ...
- Vue (响应式原理-模拟-3-Compiler)
Compiler 功能 负责编译模板,解析指令/插值表达式 负责页面的首次渲染 当数据变化后重新渲染视图 // 负责解析指令/插值表达式 class Compiler {constructor(vm) ...
- Vue (响应式原理-模拟-1-vue)
Vue 功能 负责接收初始化的参数(选项) 负责把 data 中的属性注入到 Vue 实例,转换成 getter/setter 负责调用 observer 监听 data 中所有属性的变化 负责调用 ...
- Vue (响应式原理-模拟-0)
Vue 把data中的成员注入到Vue实例,并且把data中的成员转化为getter/setter Observer 能够对数据对象的所有属性进行监听,如有变动可以拿到最新值并通知Dep Vue 功能 ...
- 模拟Vue响应式原理
模拟Vue响应式原理 设计模式 发布订阅模式 我们假定,存在一个"信号中心",某个任务执行完成,就向信号中心"发布"(publish)一个信 号,其他任务可以向 ...
- vue 数组删除 dome没更新_详解Vue响应式原理
摘要: 搞懂Vue响应式原理! 作者:浪里行舟 原文:深入浅出Vue响应式原理 Fundebug经授权转载,版权归原作者所有. 前言 Vue 最独特的特性之一,是其非侵入性的响应式系统.数据模型仅仅是 ...
- Vue学习 — Vue响应式原理
一. Object.defineProperty 在学习vue响应式原理之前,必须搞懂 Object.defineProperty. Object.defineProperty(obj, prop, ...
- 详解Vue响应式原理
摘要: 搞懂Vue响应式原理! 作者:浪里行舟 原文:深入浅出Vue响应式原理 Fundebug经授权转载,版权归原作者所有. 前言 Vue 最独特的特性之一,是其非侵入性的响应式系统.数据模型仅仅是 ...
最新文章
- MySQL 学习笔记(16)— 子查询(单行单列、一行多列、多行多列、 ALL、ANY、SOME 运算符、EXISTS 操作符)
- Swift - 简单的原生与网页交互
- 2000+引用的fastp推出重磅更新,再提速一倍!
- FIR滤波器设计(包括Verilog HDL设计以及MATLAB设计)
- Vue静态资源的获取
- python远程桌面控制_手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
- python linux 优化_Python 代码性能优化技巧
- linux上怎么快速删除一个目录?
- 长为N的数组,元素范围是0-N-1,其中只有一个数是重复的,找出这个重复元素...
- [css] CSS的伪类和伪对象有什么不同?
- micropython固件源码_Micropython加速物联网开发7 - Micropython源码编译与固件更新
- python的knn算法list_[机器学习]kNN算法python实现(实例:数字识别)
- 云南昭通暴雨强度公式_最新玉溪市中心城区暴雨强度公式(修订)
- ue编辑器绿色免安装版
- 7个实用的Python自动化代码,别再重复造轮子了
- log 1用计算机怎么打开,log是什么?log怎么打开?
- Java 简易五子棋
- 【webrtc0419 点对点视频聊天功能】
- 网秦创始人林宇称遭史文勇非法拘禁 后者称是恶意中伤
- 如何在Win10家庭版上永久、免费、快速拥有一台虚拟机?