通常开发形式时,表格的测试肯定是必不可少的。使用了异步validator的开源库。
本文详细分析了主流过程。
我们需要定义,也就是说,我们定义它,然后创建一个对象。
最后调用该功能并传递三个参数:
第一个参数是验证的对象
第二个参数是一个对象,这意味着,如果在同一字段中有多个验证规则,则不会执行未传递规则后的规则。
它也可以为整个验证对象设置。如果字段未通过验证,则将不再验证背面的所有字段。
第三个参数是验证结束后的回调函数,该函数保留了故障的所有字段和信息。
因此,上述代码的输出如下:
相应的结果是对我们的默认值。相应的结果是我们自己,它将涵盖默认值。
因为我们为其设置了它,所以仅验证的第一个规则,第二条规则尚未到达。
我们设置一个值,使其转到第二个验证规则。
输出如下:
目前,相应的结果是一个对象。除了其自身的属性外,该对象默认情况下还添加了属性和属性。
在验证之前进行标准化。
我们传达的以下内容是以下外观:
经过预处理后,它将成为以下内容:
主要做三件事:
让我们实现源代码的这一部分。
在构造函数中,所有字段都将转换为数组并将其保存到对象中。
剩余的处理在功能中,您可以按照以下注释查看:
查看上述方法:
所有验证功能均已提前定义:
在前端设计模式模式模式下,我们还提到了上述逻辑。
当我们制定准备所有领域的验证规则时。
接下来,您只需要参与双周期,执行所有字段和每个字段的所有验证功能。
首先调用验证时,与当前规则相关的变量将通过。那是什么?
该功能接受错误数据列表。如果数组未包装到数组中,则填充错误。
最后调用该函数以传递验证结果,然后引入此方法。
将返回一个函数以填写错误列表,主要是为了补充和属性。
收到的错误列表分为两种情况:
如果您在处理之前收到列表,例如这样的调用。
然后在处理之前的下图:
处理后,它将被插入并归因于对象。
如果是在处理之前是字符串列表,例如这样的调用。
同样,处理后,它也被插入并属性。
回到我们的双周期。
该功能是我们自己定义的:
由于官方示例与上述相同,因此我们通常根据上述内容编写,但实际上我们也不能调用该函数,而只能调用字符串数组或值,并将该函数称为双周期。
在双周期中处理的返回值以调用该功能。
在侧面,我们直接编写了双周期以按顺序进行检查,但是由于验证库还支持某些参数,例如上一个描述:
如果它是处理的逻辑和周期的逻辑,则它将太过耦合。将来,其他逻辑将扩展,双重周期中的逻辑将变得越来越复杂。
处理方法在这里更优雅。实现了该方法。角色是穿越数组并处理参数的逻辑。
让我们分析以下实施:
看看入口参数。
接受参数:
:要遍历的规则是在我们面前生成的数组,即双循环遍历的对象。
:初始传输可能包括和属性。
:将在遍历过程中调用此函数,该过程将传输到当前遍历和函数中。该功能需要接收处理的处理结果。在这里,我们需要先前循环的处理逻辑。
:在完成所有检查后,将引入所有验证结果。
:要验证的对象。
这样,我们可以将循环更改为直接呼叫功能。
第三个参数是我们需要处理此验证规则,即在上一个周期中的逻辑运动。
可以在前面提到的函数中调用该函数。
最后,所有遍历的功能都结束了,我们只需要在外部传递列表即可。
上面的功能是调用验证功能时检查功能的外部传递:
双重周期的外层正在穿越所有字段,并且内层正在穿越该字段的所有规则。
让我们看一下内部周期的实现:
库提供了一种方法。
接受三个参数:
它是当前字段所经历的规则列表。
这是处理规则的函数。该方法将在内部调用,当前的验证结果将被接受。
实际上,我们前面介绍的周期的内部逻辑是以下参数,如下。
第三个参数是当前验证结束后的恢复,这意味着对当前字段的所有验证规则进行了判断。
应该在这里注意到,我们判断是否通过输入次数而不是在遍历后打电话来调用该功能。
除了该方法之外,由于属性的存在,也就是说,如果不通过验证的规则,则不再判断规则。
因此,它也提供了一种方法。
输入参数是一致的。区别在于订单执行。如果该过程中未通过的规则出现,则该调用直接结束。
外循环与顶部非常相似。实际上,它遍历所有字段,然后每个字段的验证列表可以传递给内部周期。
入口参数之前已引入。您可以看到我们要做的是由数组遍历,然后根据值的值来调用并调用。在判断内存循环后,将调用内存方法。
它还由确定是否调用该函数的条目数量确定,这是前面介绍的方法。
与内部周期类似,因为属性的存在,也就是说,在穿越某个字段时,存在一个未直接通过的验证的字段,并且不会对后续字段进行判断。
我们只需要弄平所有规则,然后调用该方法。
以上是源代码的主要过程。这也很容易提及。首先准备所有规则,然后通过所有验证规则通过双重层循环的方法。这个双重层循环确实很优雅。
除了上述代码外,由于呼叫样式也支持验证功能支持该功能和其他功能,每个人还可以转到异步浏览器以查看更详细的源代码。
值得一提的是,双层层周期是通过计数确定它是否结束,而条目计数实际上是在调用函数。因此,如果我们的规则在下面:
因为我们没有通过属性,所以我们期望执行所有验证,并且值为值,因此未通过两个验证,并且应输出内容:
但实际上,只进行了第一个验证:
原因在于前两次,然后内部循环被提前调用。
因此,我们最好保证一个只有一次,它将直接在您来之后。
而且必须有一个,否则最终回调函数将永远不会执行,这就是为什么我们提示我们这样做。
但是这里说的不够严格,我们还可以返回字符串,或者字符串数组,布尔值等。内部将根据返回的结果调用该功能。
确定是否通过计数来调用回调是为了实现异步验证。在异步过程结束后,呼叫完成,这意味着验证已完成。
我通常将代码直接用前任的验证规则编写。每个人基本上都按照示例示例编写验证规则。
验证功能可以接收最大参数。
我们可以通过第四参数获取整个表单的对象。如果我们想检查某些链接的逻辑,我们可以获得其他字段的值。
对象字段的验证,如果验证字段是对象,则可以检查对象中的字段。
函数可以首先转换,然后进行验证。
检查功能被使用或直接返回。
上面是开源库的核心来源,我希望它对您有所帮助。
原始:https://juejin.cn/post/7100077345259651103