Vue.js渲染函数
Vue.js建议我们使用模板来构建HTML。在这里,我们可以使用渲染函数作为靠近编译器的替代模板。
Vue.js渲染函数也与Vue.js组件一起使用。大多数情况下,渲染函数是由Vue.js编译器创建的。当您在组件上指定模板时,该模板的内容会被Vue.js编译器处理,将返回渲染函数。该渲染函数本质上返回虚拟DOM节点,这将由Vue.js在您的浏览器DOM中呈现。
什么是虚拟文档对象模型或“DOM”?
虚拟DOM允许Vue.js在更新浏览器之前在其内存中呈现组件。这使一切都更快,因为它只需要与浏览器进行一些交互。当Vue.js更新浏览器DOM时,它会将更新的虚拟DOM与上一个DOM进行比较,并使用修改的部分更新实际DOM。这就是它如何提高性能的原理。
让我们以一个简单组件为例,查看使用渲染函数在示例中的效果。
Index.html文件:
Index.js文件:
让我们使用简单的CSS文件使输出更具吸引力。
Index.css文件:
程序执行后,您将看到以下输出:
输出:
在这里,您可以看到组件显示的结果为“Hello Students”。现在,如果您重复使用组件,您会看到结果会一遍又一遍地打印出来。例如:
输出:
假设,您不希望重复打印相同的文本,那么该怎么办?让我们进行一些更改,并在组件内输入一些内容,如下所示:
Index.html文件:
Index.js文件与上述相同。
程序执行后,您将看到以下输出:
输出:
您可以看到输出与之前相同。它不会更改我们要求的文本。## 使用插槽(Slot)
现在,我们将使用组件提供的插槽来获得所需的结果。
语法:
看下面的例子:
Index.html 文件:
Index.js 文件:
执行程序后,您将看到以下输出结果:
输出:
如何使用渲染函数(Render Function)?
假设您需要更改输出结果的颜色和大小,例如我们之前使用的是h1
标签,现在我们想要将HTML
标签更改为p
标签或div
标签或相同的组件中的任何其他标签。我们可以使用渲染函数来进行更改。渲染函数有助于使组件动态,并根据需要使用它,并通过使用相同组件来帮助传递参数,从而使其保持公共性。
让我们看一个例子来演示使用渲染函数:
Index.html 文件:
Index.js 文件:
执行程序后,您将看到以下输出结果:
输出:
示例解释
在上面的例子中,我们在Index.js文件中使用以下代码更改了组件并添加了props属性
和render函数
:
这里,props属性
如下所示:
当我们使用具有render功能的组件时,它们没有模板标签或属性,而是定义了一个名为createElement
的函数,它接收一个createElemet结构的参数:
语法:
可以在示例代码中看到如下:
我们还定义了一个名为elementtype
的属性,它需要具有字符串类型的属性字段,另一个必选字段中,我们已经指定该字段为mandatory
。
在render函数中可以看到,第一个元素是createElement
字段中的元素标记,以下是将其传递到组件中的方式:
组件接受props字段
作为上述代码。它以符号:`开始,之后指定props的名称,在指定props的名称之后,我们需要传递元素标记、颜色、字体大小和元素的id。
在render函数中,您可以看到第一个元素是createElement字段中的元素标记,它在createElemet中传递如下:
在上面的代码中,a[0]
是HTML元素标记,下一个参数是元素标记的属性,他们像下面这样在attrs字段中定义:
这里,我们为元素标记定义了两个属性: id标记和style标记。
- 在id标记中,我们传递
a[3]
,这是我们在逗号上拆分之后得到的值。 -
在style标记中,我们依次传递
a[1]
和a[2]
,以定义颜色和字体大小。
我们在组件中给定的消息如下所示:
slots字段
用于定义我们想要使用以下代码在createElemet中打印的文本:
程序执行后,查看输出时,您会发现所有输出条目都以特定方式显示。这是因为我们已经以特定方式定义了组件结构的元素。
在Vue.js渲染函数中绑定事件
让我们看一个示例来演示Vue.js渲染函数中的事件绑定。请看以下示例:
示例
Index.html文件:
Index.js文件:
程序执行后,您将看到以下输出:
输出:
当您单击“Click me”按钮时,您将看到已显示点击按钮的次数。请看输出:
在上面的示例中,该按钮被单击了四次。