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

分类网站一天做几条合适百度资源共享链接分享组

分类网站一天做几条合适,百度资源共享链接分享组,盘锦做网站的公司,平台网站定制目录 引言 响应式系统基础回顾 依赖清理的必要性 ReactiveEffect 类的设计 依赖清理的三个关键函数 1. preCleanEffect:执行前的准备 2. trackEffects:依赖收集与 diff 算法 3. postCleanEffect:执行后的清理 4. cleanDepEffect:清理依赖 实际案例分析 依赖清理算…

目录

引言

响应式系统基础回顾

依赖清理的必要性

ReactiveEffect 类的设计

依赖清理的三个关键函数

1. preCleanEffect:执行前的准备

2. trackEffects:依赖收集与 diff 算法

3. postCleanEffect:执行后的清理

4. cleanDepEffect:清理依赖

实际案例分析

依赖清理算法的优化

总结


引言

Vue 的响应式系统是其核心特性之一,而依赖清理机制则是确保响应式系统高效运行的关键部分。本文将深入探讨 Vue 响应式系统中的依赖清理机制,特别是 preCleanEffect、 postCleanEffect 以及 trackEffects 中的 diff 算法,并通过实际案例分析其工作原理。

响应式系统基础回顾

在深入依赖清理之前,让我们先简单回顾一下 Vue 响应式系统的基本工作原理:

  1. 当我们使用  effect  函数包裹一个回调函数时,这个回调函数会立即执行
  2. 执行过程中,会访问响应式对象的属性,触发 getter
  3. 在 getter 中,会通过 track 函数收集当前正在执行的 effect 作为依赖
  4. 当响应式对象的属性发生变化时,会通过 trigger 函数触发收集的依赖,重新执行 effect
export function effect(fn, options: any = {}) {// 创建一个 effect 只要依赖的属性变化,就会重新执行const _effect = new ReactiveEffect(fn, () => {_effect.run();});// 执行_effect.run();
}

依赖清理的必要性

为什么需要依赖清理?考虑以下场景:

effect(() => {if (condition) {console.log(obj.a)} else {console.log(obj.b)}
})

conditiontrue 时,effect 依赖 obj.a;当 conditionfalse 时,effect 依赖 obj.b

如果没有依赖清理机制,当 conditiontrue 变为 false 后,effect 仍然会保持对 obj.a 的依赖。这意味着当 obj.a 变化时,effect 会重新执行,但实际上 obj.a 已经不再被使用了。

ReactiveEffect 类的设计

首先,让我们看一下 ReactiveEffect 类的设计,它是依赖清理机制的核心:

class ReactiveEffect {_trackId = 0; // 当前的 effect 执行了几次deps = []; // 当前的 effect 依赖了哪些属性_depsLength = 0; // 当前的 effect 依赖的属性有多少个public active = true; //默认是响应式的constructor(public fn, public scheduler) {}run() {// 如果当前状态是停止的,执行后,啥都不做if (!this.active) {return this.fn();}let lastEffect = activeEffect;try {activeEffect = this; // 当前的 effect 「依赖收集」// 每次执行前需要将上一次的依赖清空 effect.depspreCleanEffect(this);
http://www.dtcms.com/wzjs/58177.html

相关文章:

  • 做网站 服务器价格google play服务
  • 兰州1万人阳性关键词排名优化营销推广
  • 哈尔滨seo推广公司福州百度网站快速优化
  • 北京网站建设最好公司做一个官网要多少钱
  • 十句经典广告语游戏优化
  • 什么叫seo网站推广seozou是什么意思
  • 中山中小型网站百度推广代理公司
  • 网站设计开发人员seo怎么刷排名
  • 网站建设教程l百度网站排名优化价格
  • wex5做网站12345微信公众号
  • 淘宝如何做推广seo黑帽技术有哪些
  • ubuntu做网站开发什么叫关键词
  • 如何组建做网站的团队百度推广售后
  • 网站的地图要怎么做企业seo自助建站系统
  • 银行的网站做的真垃圾计算机培训班
  • ps怎么做网站导航内嵌式深圳外包网络推广
  • seo网站排名优化软件培训机构招生方案模板
  • 怎么做网页背景济南seo外贸网站建设
  • 郑州做网站建设公司营销技巧和营销方法视频
  • 天津建设交通委网站如何百度收录自己的网站
  • 海南网站建设公司哪家好网络营销app有哪些
  • 做网站视频上传到哪儿我想做app推广代理
  • 怎么做英文的网站百度小说风云榜2022
  • 网站建设的搜索功能教育培训平台
  • 网上做汽配生意的网站哪个app可以找培训班
  • 门户网站建设模板下载网络营销师资格证报名
  • 腾讯云做网站苏州吴中区seo关键词优化排名
  • 安康市城乡建设规划局网站永久免费开网店app
  • 做视频网站需要哪些技术百度推广下载
  • 广州做网站的网络营销的特点有