首页 > 其他分享 >Vue - watcher原理

Vue - watcher原理

时间:2023-04-17 16:14:56浏览次数:42  
标签:触发 Vue 读取数据 Dep watcher getter 原理 数据

原理

  • Watcher原理是先把自己设置到全局唯一指定的位置(window.target),然后读取数据。因为读取了数据,所以会触发这个数据的getter。然后在getter中就会从全局唯一的那个位置读取真正读取数据的watcher,并把这个watcher收集到Dep中去。通过这样的方式,watcher可以主动去订阅任意一个数据的变化。

  • Observer类,把object中的数据(包括子数据)转换成响应式的,也就是他会侦测Object中数据的变化。

  • Data通过Observer转换成了getter/setter的形式来追踪变化。

  • 当外界读取数据时会调用watcher,会触发getter把watcher添加到Dep依赖中。

  • 当数据发生了变化,会触发setter,向Dep中的依赖(watcher)发送通知。
    (调用修改数据方法,把数据修改之后,通过dep通知watcher将更新的数据进行渲染)

  • Watcher接收到通知后,会向外界发送通知,变化通知到外界可能触发视图更新,也可能触发用户的某个回调函数。

Dep:收集数据函数,主要是对数据的收集依赖、删除依赖、向依赖发送消息。

标签:触发,Vue,读取数据,Dep,watcher,getter,原理,数据
From: https://www.cnblogs.com/limengyao/p/17326155.html

相关文章

  • flask请求上下文分析(request原理)、wtforms
    上节回顾#1蓝图第一步:导入第二步:实例化得到对象,可以指定static和templates第三步:app中注册蓝图,注册蓝图时,可以指定前缀第四步:使用蓝图,注册路由,注册请求扩展#2g对象当次请求的全局对象,在当次请求中可以放值和取值跟session的区别是session可......
  • 通过一个具体的例子,深入了解 SAP UI5 控件数据双向绑定的工作原理和问题排查方法试读
    笔者知识星球里有朋友提问:SAPUI5中的sap.m.select控件,在当前页面做任何操作时,都可以选中key值,但触发dialog之后,可以看到select框内的key值被清空,当关闭dialog后,再去选择key值,无任何反应,请问是select控件的问题还是dialog的问题又或者是odata写法有问题,谢谢!......
  • leaflet.openPopup() 方法传入参数是个模板字符串,如何将其改为使用vue的模板实现,可以
    注:这个问题是我使用cursor得到的回答。问:leaflet.openPopup()方法传入参数是个模板字符串,如何将其改为使用vue的模板实现,可以支持数据双向绑定为了将 this.map.openPopup() 方法中的字符串模板替换为支持双向数据绑定的 Vue 模板,您可以使用 Vue.extend() 方法创建一个新......
  • 小波变换原理简要实现和分析
    傅里叶变换是频谱分析的重要工具,适用于周期性平稳信号,但是对于非平稳信号而言,效果较差。其实质是卷积求正弦波相关性,由于正弦波不是能量有限信号,对无差别做一个全部卷积,算出来的结果不考虑时间。小波变换也是频谱分析的重要工具,基函数为能量有限信号,也可以进行时域分析。针对不......
  • vue项目中发布新版本线上自动清缓存
    背景最近项目更新频繁,每次一更新客户都说还跟之前的一样。一查原因是因为客户没有清空浏览器的缓存。所以为了方便客户看到最新版本,开始调研再发布新版本后自动清理缓存。方案每次打包后的js和css都加上hash值后缀。当文件发生改变时,hash值也改变。这样就不会走缓存举个例子vue.con......
  • vue-router
    ###################npminstallvue-router                                  <router-linkto="/user"tag="button"active-class="active"exact>GotoUserPage</router-link>这个例子中,当用户点击按钮时,会跳转到/user路由,并且按钮会添......
  • vue之插槽
    #######################                    #########################......
  • Vue开发规范
    ###############################有赞:https://github.com/youzan/vanthttps://github.com/iview/iviewhttps://github.com/ElemeFE/elementhttps://github.com/JosephusPaye/Keen-UIhttps://github.com/ElemeFE/mint-uihttps://github.com/museui/muse-uihttps://github.com/yo......
  • 【vue3-element-admin】Husky + Lint-staged + Commitlint + Commitizen + cz-git 配
    前言本文介绍vue3-element-admin如何通过Husky+Lint-staged+Commitlint+Commitizen+cz-git来配置Git提交代码规范。核心内容是配置Husky的pre-commit和commit-msg两个钩子:pre-commit:Husky+Lint-staged整合实现Git提交前代码规范检测/格式化(前提......
  • 微机原理(二)
    第二章:微处理器与总线微型计算机组成传统电子计算机由五大部分组成:运算器、控制器、存储器(内部存储器、外部存储器)、输入设备、输出设备。外部设备:外部存储器、输入出设备。主机:运算器、控制器、、内部存储器。(微处理器)中央处理器(CPU):运算器、控制器。微处理器(CPU)......