本文参加了“新移民创建仪式”活动,并共同开放了掘金的道路
本专栏将讲述如何实现一个,并让您理解底部原理。如果您直接读取源代码,它将很头疼,因为许多代码用于处理某些边界条件,这使我们很难找到它。核心内容,实现的核心功能,判断力的核心功能在边界条件下,目的是使我们能够掌握核心,了解基本原则并通过思想发展,以便您可以感受到带来的好处!
本节是本列的第一部分,它是基本实现。随后的功能将取决于它。因此,引入是什么,但要注意其操作过程和实施原则
该模块将分为几篇文章以解释。本文是模块的第一部分。它主要解释了如何实现基本和
用于创建响应对象
用于包裹副作用功能,收集响应对象和副作用函数之间的依赖关系和触发依赖关系
首先,我们需要创建我们的项目。
创建项目的源代码目录,并编写一个简单的测试用例,以查看是否成功构建了环境。
终端执行,如果可以通过测试环境完成,则可以完成
首先,我们意识到一个简单的版本,这意味着没有太多其他功能,仅首先考虑最基本的功能。那么最基本的功能是什么?有两个主要模块:
由于尚未实施这些功能,因此该单元测试自然无法通过,它们是两个主要模块。因此,这两个模块的实现也具有相应的单元测试。我们稍后写出特定模块的单元测试的操作
例如,如果我想先实现它,那么我需要先编写相应的单元测试,然后运行单元测试。但是,由于尚未实施该模块,因此将干涉单位测试,因此无法通过所有测试用例。因此,将其标记为,等待我们完成两个模块的基本功能,然后再返回以删除标记以测试是否可以通过
让我们看一下此测试案例的过程
让我们首先实现模块,我们仍然首先创建测试用例,并根据测试案例制定代码。这是核心主意
接下来我们需要实现该功能
它返回到一个,对象引入,也是基本功能。
但是,为了管理依赖关系,介质呼叫模块的依赖项将取决于媒体称为模块。基本代理函数还可以,因此我们将开始处理依赖性问题!
考虑到它负责执行副作用函数和管理依赖性,因此有多个功能,因此将它们封装成一个类是适合的。我们首先封装了一类
只要调用函数,就会创建对象和其方法的方法,以便我们将副作用函数的逻辑转移到
接下来,编写用于收集依赖性和功能以触发依赖性的功能
根据先前的流程图,它是映射的过程。首先,依赖对象用作其属性和副作用函数之间的映射。找到此映射盖后,将当前激活的对象添加到集合中
它可以与全局变量一起使用,该变量可以使用,或者为了使垃圾回收机构正常运行,建议使用使用该使用的实现。
当前的活动对象存储在全局变量中。每当执行第一个执行时,当前执行标记的函数。如果函数内部的响应对象有拦截,则将执行依赖关系集合。它是从中得到的。
注意:这是一个添加到集合中的对象,而不是副作用函数,因为我们通过对象的方法统一地实现了副作用函数。
为了能够访问中国正确的当前激活对象,我们需要在对象执行方法时修改自己的点
扳机依赖性也非常简单。流程图已被解释。根据获得的收集,收集的方法可以通过副作用函数执行调用的方法
实施后,单位测试可以通过
原始:https://juejin.cn/post/7100097635817619464