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

做网站致富沈阳城市建设管理学校网站

做网站致富,沈阳城市建设管理学校网站,防疫网站网页设计,微信自己怎么弄小程序目录 依赖收集的完整实现 trackEffects:建立双向依赖关系 触发更新的完整实现 完整的响应式流程 为什么使用 Map 而不是 Set? 总结 在上一篇文章中,我们介绍了 Vue3 响应式系统的基本原理和 activeEffect 的作用。现在,我们将深入探讨完善后的依赖追踪和触发更新机制…

目录

依赖收集的完整实现

trackEffects:建立双向依赖关系

触发更新的完整实现

完整的响应式流程

为什么使用 Map 而不是 Set?

总结


在上一篇文章中,我们介绍了 Vue3 响应式系统的基本原理和 activeEffect 的作用。现在,我们将深入探讨完善后的依赖追踪和触发更新机制,特别是 track、 trigger、 trackEffects 和 triggerEffects 函数的实现,以及 ReactiveEffect 类中新增的属性。

class ReactiveEffect {_trackId = 0; // 当前的 effect 执行了几次deps = []; // 当前的 effect 依赖了哪些属性_depsLength = 0; // 当前的 effect 依赖的属性有多少个public active = true; //默认是响应式的constructor(public fn, public scheduler) {}// ...
}

这些新增的属性有重要的作用:

  • _trackId:记录 effect 执行的次数,用于优化依赖收集
  • deps:存储当前 effect 依赖的所有属性的依赖集合
  • _depsLength:记录依赖的属性数量,避免频繁计算数组长度

依赖收集的完整实现

// 存储依赖收集的关系
const targetMap = new WeakMap();export const createDep = (cleanUp, key) => {const dep = new Map() as any; //创建的收集器还是一个mapdep.cleanUp = cleanUp; //清理方法dep.name = key; //收集器名称return dep;
};export function track(target, key) {if (activeEffect) {let depsMap = targetMap.get(target);if (!depsMap) {targetMap.set(target, (depsMap = new Map()));}let dep = depsMap.get(key);if (!dep) {depsMap.set(key, (dep = createDep(() => depsMap.delete(key), key)));}trackEffects(activeEffect, dep);console.log(targetMap);}
}

与之前相比,有几个重要的变化:

  • 依赖集合从 Set 变成了 Map,这允许我们存储更多信息
  • 使用
http://www.dtcms.com/wzjs/814978.html

相关文章:

  • 网站创建怎么做网站有哪些平台
  • 有域名了网站怎么建设简述jsp网站开发的环境配置
  • 网站租金可以做办公费吗wordpress 上传组件
  • 整站seo技术搜索引擎优化网页设计大师
  • 大英县住房和城乡建设局网站岳阳做公司网站
  • 哪些网站可以做海报热点的一级a做爰精免费网站
  • 域名如何解析别人网站网站上怎样做下载文档链接
  • 莞城营销型网站建设win7本地做网站
  • 网站做简介免费下载微信
  • 时尚女装网站设计杭州seo托管公司推荐
  • 视频手机网站开发虚拟云手机免费永久
  • asp网站js悬浮窗怎么做百度一下你就知道首页官网
  • 携程网站建设项目wordpress 内网慢
  • 零成本游戏网站开发北京网站备案号查询
  • 企业做网站需要准备什么资料广西公司做网站
  • seo如何分析一个网站网站有死链接怎么办
  • 企业网站推广服务协议wordpress自定义类型模板
  • 建设工程竣工竣工档案网站如果你想了解信息
  • 网站建设 上海网站建设大连关键词优化服务
  • html 社区网站 模板ip138域名查询
  • 文昌市建设局网站品牌商城网站建设公司
  • 湖南网站建设oqiandume域名免费注册
  • 电影网站制作教程好不好免费公司网站模版
  • 怎么学习做网站外贸网站翻译建设
  • 做网站建设的合同网站导航功能
  • 重庆制作网站手机应用市场
  • php网站开发 实战教程上海移动网站建设
  • 网站后台密码存在哪wordpress 忘记管理员密码
  • 网站开发有哪些风险整站优化哪家专业
  • 地方网站总结东莞市工程建设安监站网站