当前位置: 首页 > 网络应用技术

VUE3源代码读取 - 反应创建响应对象

时间:2023-03-05 19:46:48 网络应用技术

  作为标题,本文是阅读反应源代码实现过程的过程:

  从上面的代码中可以看出,反应性通过调用createrActiveObject函数来创建响应对象。其执行过程如下:

  近距离:这是一个弱图,在创建响应对象的过程中在性能优化中起着作用。如果是这样,您就不需要再次创建它。WeakMap保留每个关键对象的“弱参考”,这意味着当没有其他参考时,垃圾回收可以正确执行垃圾回收

  上面的代码仅将目标包装在CREASTEACTIVEOBJECT中的响应对象的代码中。响应实现包含在代理的处理程序参数中,该参数对应于BaseHandler。

  可以从上面的代码中可以看出baseHandlers.get是CreateGeter函数的返回值。让我们分析以下此功能的实现

  收集依赖项的入口在轨道功能上。以下分析了此功能的具体实现:

  变量简介:

  TargetMap的结构图标:轨道函数的执行过程也很明确:

  无论是反应性还是裁判的依赖性,它们都在trackefect中完成

  当我们重新分配响应对象的属性时,我们将触发页面更新,计算或观察重新计算或执行。这里的核心实际上是通知依赖项更新的过程。更新入口在CreateSetter的返回函数中:

  判断目标是否具有通过HADKEY的条目属性,此处将忽略目标原型的属性。如果是操作原型,则不会触发更新过程。通知取决于更新的导入函数是Tigger函数

  触发功能的逻辑很明显: