实际上,已经有关于此问题的正式文档的好例子,让我们先热身。
除核心函数默认指令(和)外,VUE还允许注册自定义定义指令。注意,在VUE2.0中,代码重用和抽象的主要形式是组件。在某些情况下,您仍然需要在此时,将对普通DOM元素进行基本操作,并将使用自定义说明。将重点放在输入框上的重点,如下:
加载页面后,该元素将获得焦点(注意:不使用移动版本)。实际上,只要您尚未单击此页面,此输入框仍应处于焦点状态。现在使用指令实现此功能:
如果要注册本地指令,您还接受组件中的选项:
然后,您可以在模板中的任何元素上使用新元素,如下所示:
一个指令定义对象可以提供以下挂钩函数(所有可选):
指令钩函数将传递到以下参数:
除了应仅读取其他参数,不要修改。如果您需要在挂钩之间共享数据,建议通过该元素进行元素。
让我们看看一个,
看看渲染的结果:
通过上述官方网站和我们通常的代码的示例,我们基本上了解了如何使用Vue的说明。接下来,我们从源代码的角度分析其实施原则。
实际上,此方法相对简单,即映射已安装。例如,我们想看看该指令是如何有效的。
在下一步分析源代码之前,我们可能可以猜测如何实现定义指令。在模板编译阶段(从元素的属性到指令属性),自我定义的指令中的不同自定义逻辑是在不同的生命周期元素的阶段称为next,结合源代码分析它,该指令分析和有效性分为三个阶段:模板编译阶段,生成VNode阶段以及生成真实DOM的斑块阶段。
我们的代码片段为例:
不熟悉模板汇编的学生可以查看他们在此阶段的工作。我不会在此处详细介绍它,只要注意这部分。指令是该元素属性的一部分,因此,当解析标签元素时,它将被放入该对象的属性中。以上示例将被解析为:
与终端标签匹配时,将进一步处理这些属性,例如:如果是指令,则将处理以安装此对象。
特定过程如下。与最终标签匹配时,将调用端标签的功能。此功能内的配置项目将返回调用。
请注意,这里的方法主要是处理解析过程中的元素。LET查看代码。
它主要用于一堆元素属性的处理方法。我们需要注意处理指令和修饰符的方法。LET对伪代码的看法:
这里有一个周期,然后根据不同的规律性进行分析,分别处理它们。将添加自定义说明以添加指令属性,如下:
在模板分析的第一阶段中,指令分析基于上述。在模板分析的第二阶段中,分析生成的生成的函数字符串将被解析。自定义指令也已转换为以下形式,成为函数的第二个参数。
在此功能的阶段,原始面的指令字符串将安装到属性上,
在生成真实阶段的这个阶段,您将调用(在呼叫阶段所需的功能),并将调用该功能。最后,我们将打电话给我们查看代码:
在中间,重要的是,它与当前节点开头的我们全局自定义的指令功能相对应。此外,在不同的生命周期中,将根据不同条件来调用不同的自定义命令功能。例如,如果有没有存在,您将调用初始化。
我们不像预期的那样神秘。从开始时全局函数的定义以及文档中不同挂钩函数的定义和参数,我们有一个一般的想法。通过对自定义指令实现的步骤 - 逐步探索,进一步了解整个过程。给我留下了深刻的印象,是整个代码逻辑的组织值得我们进行挖掘和学习。
作者:JayConsiscient