一、el,template,render属性优先性
当Vue选项对象中有render渲染函数时,Vue构造函数将直接使用渲染函数渲染DOM树,当选项对象中没有render渲染函数时,Vue构造函数首先通过将template模板编译生成渲染函数,然后再渲染DOM树,而当Vue选项对象中既没有render渲染函数,也没有template模板时,会通过el属性获取挂载元素的outerHTML来作为模板,并编译生成渲染函数。
换言之,在进行DOM树的渲染时,render渲染函数的优先级最高,template次之且需编译成渲染函数,而挂载点el属性对应的元素若存在,则在前两者均不存在时,其outerHTML才会用于编译与渲染。
1、写html文件

<div class="vapp-1">{{ info }}</div>
<div class="vapp-2">{{ info }}</div>
<div class="vapp-3">{{ info }}</div>

2、写js文件

new Vue({el: '.vapp-1',data: {info: '这是通过el属性获取挂载元素的outerHTML方式渲染。'},template: '<div>这是template属性模板渲染。</div>',render: function(h){return h('div', {}, '这是render属性方式渲染。')}
})new Vue({el: '.vapp-2',data: {info: '这是通过el属性获取挂载元素的outerHTML方式渲染。'},template: '<div>这是template属性模板渲染。</div>'
})new Vue({el: '.vapp-3',data: {info: '这是通过el属性获取挂载元素的outerHTML方式渲染。'}
})

3、查看渲染结果
这是render属性方式渲染。
这是template属性模板渲染。
这是通过el属性获取挂载元素的outerHTML方式渲染。

二、独立构建和运行时构建
Vue.js 1.0,编译器需要依赖浏览器的DOM,所以无法将编译器和运行时分开。因此在Vue.js 1.0分发包中,编译器和运行时是打包在一起,都在浏览器端执行。
Vue.js 2.0,为了支持服务端渲染(server-side rendering),编译器不能依赖浏览器的DOM,所以必须将编译器和运行时分开。于是形成了独立构建(编译器 + 运行时)和运行时构建(仅运行时)。显而易见,运行时构建体积要小于独立构建。

1、模板编译器
模板编译器的职责是将模板字符串编译为纯JavaScript的渲染函数,即将<template>编译成render函数。
2、Vue.js的执行过程
包含编译过程和运行过程,在编译过程,编译器将字符串模板(template)编译为渲染函数(render)
在运行过程,调用渲染函数。
3、运行时构建
运行时构建指不能进行模板编译的Vue库。运行时构建不包含模板编译器,即不支持template选项,如果使用vue-loader和vueify预编译模板,只需要打包运行时,而不需要打包编译器。
运行时构建,可以用render选项,但它只在单文件组件中起作用,因为单文件组件的模板是在构建时预编译到render函数中,运行时构建只有独立构建大小的30%,只有16Kb min+gzip大小。

// 不需要编译器
new Vue({render (h) {return h('div', this.hello)}
})

4、独立构建
独立构建指能够将template模板或者从el挂载元素提取的模板编译成渲染函数的Vue库,独立构建包含模板编译器,可以用template选项实时编译模板。

// 需要编译器
new Vue({template: '<div>{{ hello }}</div>'
})

使用vue-cli生成项目时,会提醒使用哪种构建方式,npm包默认导出的是运行时构建,即runtime版本vue.runtime.common.js,如果想使用独立构建,需要在webpack.config.js中配置alias。

resolve: {alias: {vue: 'vue/dist/vue.js'}
}

vue实例属性之el,template,render相关推荐

  1. [vue] 说说你对选项el,template,render的理解

    [vue] 说说你对选项el,template,render的理解 el: 把当前实例挂载在元素上 template: 实例模版, 可以是.vue中的template, 也可以是template选项, ...

  2. Vue 实例之全局API,实例属性,全局配置,组件进阶

    文章目录 写在前面 Vue 全局 API Vue.directive Vue.use Vue.extend Vue.set Vue.mixin Vue 实例属性 vm.$props vm.$optio ...

  3. 计算属性与监听器、Vue 实例的生命周期

    本文是我在学习过程中记录学习的点点滴滴,仅仅为了学完之后巩固一下,日后忘记了也可以方便快速的复习. 计算属性与监听器.Vue 实例的生命周期 前言 一.计算属性 1.1.计算属性初步理解 1.2.计算 ...

  4. Vue 实例之数据绑定,事件,组件,生命周期!!!

    文章目录 关于 vue 设计模式的简介 1.Vue实例 创建简单 vue 实例 el 唯一根标签: data: methods: computed: watch: filters: 2.Vue 数据绑 ...

  5. Vue01-创建Vue实例以及各选项含义

    1.创建Vue实例 Vue实例:通过new关键字实例化Vue({})构造函数 <script>var vm = new Vue({//选项 }); Vue实例配置对象: data:Vue实 ...

  6. Vue 实例生命周期

    一.生命周期 Vue 应用都是通过 Vue 实例(ViewModel)完成的,Vue 创建实例需要一系列的初始化动作,需要设置数据监听.编译模板.将实例挂载到 DOM 并在数据变化时更新 DOM 等. ...

  7. Vue2.x源码学习笔记-Vue实例的属性和方法整理

    还是先从浏览器直观的感受下实例属性和方法. 实例属性: 对应解释如下: vm._uid // 自增的id vm._isVue // 标示是vue对象,避免被observe vm._renderProx ...

  8. vue-router路由、mixin混入、vue-resource、axios、计算属性watch、moment.js、vuex、vue-cli、数据双向绑定、搭建vue环境、vue实例、配置启动项

    路由vue-router介绍: // 1.前端路由核心:锚点值的改变,根据不同的锚点值,渲染指定dom位置的不同数据.// 2.vue中,模板数据不是通过ajax请求的,而是调用函数获取到模板内容// ...

  9. Vue实例的属性及模板渲染

    Vue实例的属性及模板渲染 1 概述 2 el:与DOM元素绑定 3 data:定义双向绑定的数据 4 computed:计算属性 5 methods:定义Vue实例的方法 6 Vue中的三种模板 6 ...

最新文章

  1. 一个简单的内核模块实现和使用
  2. 滴滴自动驾驶获得江苏省苏州公安局颁发的路测牌照
  3. git回滚到历史版本,并且删除本地untracked file
  4. PostgreSQL(三)pgpool管理PostgreSQL集群下主机宕机后的主从切换
  5. cmd命令:在ftp下载文件运行
  6. Linux下对Verilog文件进行leda检错
  7. java 用户控件_C#自定义控件VS用户控件
  8. 关于Oracle实时数据库的优化思路
  9. 190916-二级format补齐
  10. Java自动化测试框架-07 - TestNG之Factory篇 - (详细教程)
  11. VC6.0代码移植到VS2008运行时乱码问题解决
  12. qt 限制一段时间内对button只能点按一次_299元入手拓牛智能垃圾桶,用第一次想退货,第三天我上瘾了...
  13. 英特尔® 实感™ SDK 架构
  14. PLC -- 可编程逻辑控制器
  15. JAVA EE常见英文单词(一)
  16. 勒索软件不可破解?谁在标题党
  17. Oracle存储过程打印输出错误信息、行号,快速排查
  18. 计算机网络技术个人简历范文,计算机网络技术专业个人简历自我评价范文
  19. 云模式下的固定资产管理是什么样的?
  20. TS科普19 各种流(如:MP3、H264、H265等)在TS的流类型

热门文章

  1. windowsCE异常和中断服务程序初探
  2. mysql安装图解_MySQL安装图解
  3. pr渲染程序选哪个_PR的bug你遇到过几个?
  4. vb excel 整行删除_Excel中常用的批量处理都不掌握,那就真的Out了
  5. matlab207a,MATLAB教程R2012a课后习题答案
  6. ie8不发送ajax,IE8用ajax访问不能每次都刷新的问题
  7. [转载]httpClient.execute抛Connection to refused异常问题
  8. 20080331 - What is a PID, How is it useful when troubleshooting a system
  9. H3C FTP配置示例
  10. 吴恩达“机器学习”——学习笔记二