1. el——一个在页面上已存在的 DOM 元素
-
类型:
string | Element -
限制:只在用
new创建实例时生效。 -
详细:
提供一个在页面上已存在的 DOM 元素作为 Vue 实例的挂载目标。可以是 CSS 选择器,也可以是一个 HTMLElement 实例。
在实例挂载之后,元素可以用
vm.$el访问。如果在实例化时存在
el选项,实例将立即进入编译过程,否则,需要显式调用vm.$mount()手动开启编译。提供的元素只能作为挂载点。不同于 Vue 1.x,所有的挂载元素会被 Vue 生成的 DOM 替换。因此不推荐挂载 root 实例到
<html>或者<body>上。如果
render函数和templateproperty 都不存在,挂载 DOM 元素的 HTML 会被提取出来用作模板,此时,必须使用 Runtime + Compiler 构建的 Vue 库。 -
参考:
2. template——一个字符串模板(作为 Vue 实例的标识)
-
类型:
string -
详细:
一个字符串模板作为 Vue 实例的标识使用。模板将会替换挂载的元素。挂载元素的内容都将被忽略,除非模板的内容有分发插槽。
如果值以
#开始,则它将被用作选择符,并使用匹配元素的 innerHTML 作为模板。常用的技巧是用<script type="x-template">包含模板。如果 Vue 选项中包含渲染函数
render,该模板将被忽略。 -
参考:
3. render——一个函数(页面渲染函数)
-
类型:
(createElement: () => VNode) => VNode -
详细:
字符串模板的代替方案,允许你发挥 JavaScript 最大的编程能力。
render渲染函数接收一个createElement方法作为第一个参数用来创建VNode。如果组件是一个函数组件,渲染函数还会接收一个额外的
context参数,为没有实例的函数组件提供上下文信息。Vue 选项中的
render函数若存在,则 Vue 构造函数不会从template选项或通过el选项指定的挂载元素中提取出的 HTML 模板编译渲染函数。 -
参考:渲染函数
4. renderError——当 render 函数遭遇错误时,用另外一种渲染输出替换
-
类型:
(createElement: () => VNode, error: Error) => VNode -
详细:
只在开发者环境下工作。
当
render函数遭遇错误时,提供另外一种渲染输出。其错误将会作为第二个参数传递到renderError。这个功能配合 hot-reload 非常实用。 -
示例:
new Vue({ render (h) { throw new Error('oops') }, renderError (h, err) { return h('pre', { style: { color: 'red' }}, err.stack) } }).$mount('#app') -
参考:渲染函数