Vue拥有两个版本,一个是完整版(vue.js),一个是非完整版(vue.runtime.js)
区别
- 完整版:同时包含编译器和运行时的版本。
- 编译器(即 compiler):用来将模板字符串编译成为JavaScript渲染函数的代码。
- 非完整版(运行时版) :用来创建Vue实例、渲染并处理虚拟DOM等的代码。基本上就是除去编译器的其它一切
主要区别
最佳实战:应该总是使用非完整版本,然后配合vue-loader和vue文件
具体思路: 1. 保证用户体验,用户下载的JS文件体积更小,但只支持h函数 2. 保证开发体验,开发者可直接在vue 文件里写 HTML标签,而不写h函数 3. 1. 中间的转换过程让 loader 来做,vue-loader把 vue 文件里的HTML 转为h函数 对比 如果vue.js错用成vue.runtime.js:无法将HTML编译成视图; 如果vue.runtime.js错用成vue.js:代码体积变大,因为vue.js有编译HTML的功能。
template 和 render
template
当使用vue.js,即vue完整版时,可使用template操作UI
<template>
<div id="app">
{{n}}
<button @click="add">+1</button>
</div>
</template>
render
当使用vue.runtime.js时,即vue非完整版时,只支持在render函数中创建视图模板
new Vue({
el: '#app',
render(h){
return h('div',this.n)
},
data:{
n:0
}
})
使用codesandbox.io写Vue代码
- 进入官网
- 点击 "Create a Sandbox, it's free"
- 选择 "Vue"