当前位置: 首页 > news >正文

如何做好网站建设销售企业营销咨询

如何做好网站建设销售,企业营销咨询,wordpress主题idowns,装饰网站的业务员都是怎么做的vue响应式原理 vue响应式原理vue2响应式原理目标对象为数组时 vue3响应式原理Vue3和Vue2在响应式系统方面的对比数据劫持的方式支持数据劫持的数据类型Vue3响应式系统显著优点是: vue响应式原理 无论vue2和vue3响应式都是通过观察者模式(发布订阅模式&a…

vue响应式原理

    • vue响应式原理
          • vue2响应式原理
            • 目标对象为数组时
          • vue3响应式原理
          • Vue3和Vue2在响应式系统方面的对比
            • 数据劫持的方式
            • 支持数据劫持的数据类型
            • Vue3响应式系统显著优点是:

vue响应式原理

无论vue2和vue3响应式都是通过观察者模式(发布订阅模式)实现的
涉及到:目标对象(target),依赖收集(dep),观察者(watcher)
vue2和Vue3的响应式系统同样包含三个阶段,1.数据劫持(变动侦测);2.收集依赖(观察者);3.通知依赖(观察者)。

vue2响应式原理

数据劫持:目标对象通过observe函数,新增__ob__属性,这个属性是一个observer的一个实例,这个observer实例有dep的属性,dep指向的是依赖收集者(自己本身),然后对目标对象每一个属性执行definereactive将属性转换成访问器属性这样我们就可以通过对属性的读写进行拦截
在这里插入图片描述

目标对象为数组时

对数组的侦测,首先重写数组的原型为arrayMethods;然后遍历数组,对每一个元素调用observe函数。何为arrayMethods?首先设置arrayMethods的原型为Array.prototype;然后往arrayMethods上定义7个属性,这7个属性其实是重写的7个数组变异方法。有的数组变异方法是可以新增元素的,要把新增加的元素变成响应式的;在所有的变异方法里都会调用数组的__ob__.dep.notify方法通知观察者。示意图如下:
在这里插入图片描述

收集依赖:当执行观察者get方法时,会触发目标对象属性的getter方法,在getter方法里收集观察者,这个过程就是“收集观察者”。
在这里插入图片描述

通知观察者:当目标对象属性变更时,会触发目标对象的setter方法,在setter方法里执行观察者的update方法

vue3响应式原理

数据劫持:reactive函数,生成Proxy代理对象,可以对5种操作进行拦截。get trap,has trap,ownKeys trap,deleteProperty trap,set trap
在这里插入图片描述

收集依赖:Vue3的观察者不叫Watcher,而是叫effect,它是基于ReactiveEffect接口实现的。effect初始化时,执行它的入参fn,fn里执行proxy对象的值,触发get/has/ownKeys trap。在get/has/ownKeys trap 里执行track方法,将目标对象属性和观察者存储到依赖收集表
在这里插入图片描述

通知依赖:当proxy对象的值发生改变,触发deleteProperty/set trap。在deleteProperty/set trap 里执行trigger方法,从依赖收集表中找出目标对象属性对应的观察者set集合,遍历所有的观察者,执行run方法,最终会执行effect的入参fn函数。
在这里插入图片描述

Vue3和Vue2在响应式系统方面的对比
数据劫持的方式

Vue3的数据劫持是通过Proxy实现的,而Vue2是通过Object.defineProperty实现的;长远来看JS引擎会继续优化Proxy,但Object.defineProperty不会再有针对性的优化,所以Proxy性能上整体优于Object.defineProperty;
总结:Vue3比Vue2有更快的性能。

支持数据劫持的数据类型

Vue3支持Object、Array、Map、WeakMap、Set、WeakSet六种数据类型的数据劫持,而Vue2只支持Object、Array两种数据类型;并且Vue3可以劫持对象的属性增删和数组的索引操作。
总结:Vue3支持更多数据类型的数据劫持。

Vue3响应式系统显著优点是:

有更快的性能、占用更小的内存、支持Vue根数据增删属性的拦截、支持数组的拦截。

http://www.dinnco.com/news/12827.html

相关文章:

  • 建设网站怎样通过流量赚钱百度一下官网首页登录
  • 美国做色情网站犯法吗济宁seo公司
  • 做网站新科网站建设aso优化软件
  • 企业网站模块种类西安高端网站建设
  • 复制别人的代码做网站seo免费自学的网站
  • 网站首页菜单栏模块怎么做的网站推广是什么
  • 网站怎么做301定向百度关键词数据
  • 建什么网站能百度收录北京seo怎么优化
  • 纯div css做网站简洁版长沙seo网站优化公司
  • 网站做多久能盈利长沙网络营销外包哪家好
  • 网站建设 长沙如何对一个网站进行seo
  • 开发商城网站开发优化网站价格
  • java wordpress 密码凤山网站seo
  • 上海专业做网站较好的公司有哪些网上教育培训机构排名
  • 哪个网站做免费小程序南宁百度seo价格
  • 河南做网站哪家好百度一下就知道首页
  • 网站建设招标采购需求公司网站推广方案
  • 巴中网站制作google免费入口
  • canvas做的手机网站网站怎么做
  • vpswindows学生18公交车上东莞搜索优化
  • java怎么做网站合肥网站seo公司
  • 济南智能网站建设网站关键词优化价格
  • 在线电子商务网站开发广州谷歌seo
  • 手机网站建设机构自己怎么做网站优化
  • 网站建站流程有哪些seo百度排名优化
  • 南通网站建设空间广州新闻头条最新消息
  • 哪些网站可以做商家seo优化关键词放多少合适
  • 机械加工网站大全北京最新疫情最新消息
  • 阿里云建站论坛网站百度联系方式
  • 永德县政府网站建设局产品推广软文