1、el
类型 | string | Element |
限制 | 只在用 new 创建实例时生效 |
详细 |
提供一个在页面上已存在的 DOM 元素作为 Vue 实例的挂载目标。可以是 CSS 选择器,也可以是一个 HTMLElement 实例。 在实例挂载之后,元素可以用 如果在实例化时存在这个选项,实例将立即进入编译过程,否则,需要显式调用 |
提供的元素只能作为挂载点。不同于 Vue 1.x,所有的挂载元素会被 Vue 生成的 DOM 替换。因此不推荐挂载 root 实例到
<html>
或者<body>
上。如果
render
函数和template
property 都不存在,挂载 DOM 元素的 HTML 会被提取出来用作模板,此时,必须使用 Runtime + Compiler 构建的 Vue 库。
示例:
new Vue({
el: "#app",
router,
store,
render: (h) => h(App),
});
2、template
类型 |
|
详细 |
一个字符串模板作为 Vue 实例的标识使用。模板将会替换挂载的元素。挂载元素的内容都将被忽略,除非模板的内容有分发插槽。 如果值以 |
其他 |
出于安全考虑,你应该只使用你信任的 Vue 模板。避免使用其他人生成的内容作为你的模板。 如果 Vue 选项中包含渲染函数,该模板将被忽略。 |
示例:
<template>
<div id="app">
<router-view />
</div>
</template>
3、render
类型 | (createElement: () => VNode) => VNode |
详细 |
字符串模板的代替方案,允许你发挥 JavaScript 最大的编程能力。该渲染函数接收一个 如果组件是一个函数组件,渲染函数还会接收一个额外的 |
其他 | Vue 选项中的 render 函数若存在,则 Vue 构造函数不会从 template 选项或通过 el 选项指定的挂载元素中提取出的 HTML 模板编译渲染函数。 |
示例:
<template>
<div>
<p>{{ message }}</p>
</div>
</template>
<script>
export default {
data() {
return {
message: 'Hello, World!'
};
},
render(createElement) {
return createElement('div', [
createElement('p', this.message)
]);
}
}
</script>
4、renderError
类型 | (createElement: () => VNode, error: Error) => VNode |
详细 |
只在开发者环境下工作。 当 |
示例:
new Vue({
render (h) {
throw new Error('oops')
},
renderError (h, err) {
return h('pre', { style: { color: 'red' }}, err.stack)
}
}).$mount('#app')