【Vue全解5】options之DOM(el、template、render)

632 阅读1分钟

目录

  • 系列文章
  • el
  • template
  • render

一、系列文章

【Vue 全解 0】Vue 实例

【Vue 全解 1】构造选项 options 之 data

【Vue 全解 2】Vue 模板语法摘要

【Vue 全解 3】Vue 的 data 代理和数据响应式

【Vue 全解 4】options 之生命周期钩子(created、mounted、updated、destroyed)

【Vue 全解 5】options 之 DOM(el、template、render)

【Vue 全解 6】options 之资源(directive、filter、components)和修饰符

【Vue 全解 7】options 之组合(mixin、extends、provide/inject)

【Vue 全解 8】Vue 表单输入绑定 v-model

二、el

提供一个在页面上已存在的 DOM 元素作为 Vue 实例的挂载目标。可以是 CSS 选择器,也可以是一个 HTMLElement 实例。

在实例挂载之后,元素可以用 vm.$el 访问。

如果在实例化时存在这个选项,实例将立即进入编译过程,否则,需要显式调用 vm.$mount() 手动开启编译。

  • 代码演示示例
import Vue from "vue/dist/vue.js";
new Vue({
	el:'#app',
})

或者

import Vue from "vue/dist/vue.js";
new Vue({
	
}).$mount("#app")

三、template

一个字符串模板作为 Vue 实例的标识使用。模板将会替换挂载的元素。挂载元素的内容都将被忽略,除非模板的内容有分发插槽。

如果值以 # 开始,则它将被用作选择符,并使用匹配元素的 innerHTML 作为模板。常用的技巧是用 <script type="x-template"> 包含模板。

  • 代码演示示例
import Vue from "vue/dist/vue.js";
new Vue({
	el:'#app',
	template:`
		<div>
			这是template模板
		</div>
	`
})

四、render

字符串模板的代替方案,允许你发挥 JavaScript 最大的编程能力。该渲染函数接收一个 createElement 方法作为第一个参数用来创建 VNode。

如果组件是一个函数组件,渲染函数还会接收一个额外的 context 参数,为没有实例的函数组件提供上下文信息。

new Vue({
	// render:h=>h(Demo),这行代码等同于下面两行。
	components:{Demo},
	data:{
		flag:true,
	},
	template:`
		<div>
			<span>render渲染函数</span>
		</div>
	`,
}).$mount('#app')