Vue.js 的 render 函数是组件的渲染方法。它使用传入的 createElement 方法创建虚拟 DOM。
使用 render 函数的好处:
- 完全掌控编译过程,不受限制于模板的语法。
- 方便与第三方库集成,如 React。
- 渲染性能更高,因为可以避免模板解析过程。
render 函数的基本语法:
js
render: function (createElement) {
return createElement('h1', 'Hello World!')
}
createElement 的第一个参数是标签/组件,第二个参数是属性,第三个是子节点。
一个更复杂的例子:
js
render (createElement) {
var children = [
createElement('p', 'Paragraph 1'),
createElement('p', 'Paragraph 2')
]
return createElement('div', {
attrs: {
id: 'container'
}
}, children)
}
使用 render 函数和 JSX 的示例:
js
render(h) {
return (
<div id="container">
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</div>
)
}
与模板的区别:
模板:
html
<div id="container">
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</div>
相比模板,render 函数/JSX 具有更高的灵活性,但是可读性稍差,更适合提高性能的场景。
Vue 提供 render 函数让我们可以自定义组件的渲染方式。理解 render 的原理和用法,可以让我们在更为复杂的场景中发挥 Vue 的最大性能。