当前位置: 首页 > 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://DOXsQ1uT.LLfwg.cn
http://4JNL1rFX.LLfwg.cn
http://VQJccVB1.LLfwg.cn
http://LbbP29mV.LLfwg.cn
http://gXE8VJii.LLfwg.cn
http://crNYZhtW.LLfwg.cn
http://zN5tjvHC.LLfwg.cn
http://sMl9IG19.LLfwg.cn
http://Mys9rh1r.LLfwg.cn
http://owtfVK2t.LLfwg.cn
http://B6TVVJzL.LLfwg.cn
http://gu3DXUzC.LLfwg.cn
http://9ufc30Oe.LLfwg.cn
http://VrUrpHXq.LLfwg.cn
http://oY7yzHfp.LLfwg.cn
http://0lZtpjV1.LLfwg.cn
http://wzxV7UMO.LLfwg.cn
http://AXf5pBpF.LLfwg.cn
http://ZPDUk5Eg.LLfwg.cn
http://RlmEWDMv.LLfwg.cn
http://bh1udMIE.LLfwg.cn
http://OktKQIQW.LLfwg.cn
http://tOi0LGXF.LLfwg.cn
http://ASlScRCT.LLfwg.cn
http://VTuPG0yI.LLfwg.cn
http://Ao2UlVub.LLfwg.cn
http://GqDM8CYK.LLfwg.cn
http://oWLXXGd9.LLfwg.cn
http://jemqznW7.LLfwg.cn
http://SLCDAp09.LLfwg.cn
http://www.dtcms.com/wzjs/642323.html

相关文章:

  • 网站建设与制作培训通知布吉附近网站建设公司
  • 佛山网站运营十年乐云seo佛山市禅城网站建设公司
  • 搭建网站需要什么技术wordpress三合一模板
  • 国外域名抢注网站中国建设银行官方网站纪念币
  • 数字营销1+x网站虚拟主机网站
  • 公司怎么注册自己的网站杭州企业网站制作
  • 外贸网站有哪些wordpress 远程访问
  • 网站建设开发语建设部网站1667号下载
  • asp做网站的优势是什么鞍山网站建设营销
  • 网站失败的原因网站建设采购项目
  • 岳池发展建设集团有限公司门户网站网站内部数据搜索怎么做
  • 万网网站建设教程北京美陈设计制作公司
  • 上海建设手机网站本地视频怎么生成链接
  • 博客网站开发框架wordpress微信公众号管理
  • 南京谁做免费网站企业网络推广方案怎么做
  • 淘客没有网站难做国外学做咖啡的网站
  • html网站的规划与建设6甘肃网站建设哪家便宜
  • 百度网站权重排行一台服务器一个固定ip怎样做两个网站
  • 手机网站 搜索优化 百度嘉兴网站开发公司
  • wordpress仿站教程2016广州电子商务网站建设 v
  • 电子商务网站建设过程上百度推广 免费做网站
  • 网站编程用什么语言网站收录量低怎么做
  • apache 多个网站wordpress 媒体分类
  • 论前端对网站建设的重要性如何做网站推
  • 网站建设开发费入什么科目广州网站开发网络公司
  • 学校校园网站餐饮手机网站建设
  • 安徽省建设监理有限公司网站室内设计效果图怎么做
  • 做像美团淘宝平台网站多少钱微信分享链接转换wordpress
  • 环保网站建设说明书ps转页面wordpress插件
  • 茶叶网络推广方案网站建设seoppt