1. Vue 两个不同构建版本的区别
1.1 完整版
文件名为vue.js;该版本具有complier(编译器);视图部分可写在HTML中,也可写在template选项里;可由cnd直接引入vue.js,如用webpack引入则需要配置alias,如用@vue/cli引入也需要额外配置。
// 需要编译器 compiler
new Vue({
template: '<div>{{ hi }}</div>'
})
1.2 只包含运行时版(非完整版)
文件名为vue.runtime.js;该版本不含complier(编译器),因此相对完整版文件体积小了40%左右;视图部分需要写在render函数里,用h来创建标签,h标签是内置的;可由cdn直接引入vue.runtime.js,由webpack和@veu/cli引入也是默认该版本,不需要额外配置
// 不需要编译器 compiler
new Vue({
render (h) {
return h('div', this.hi)
}
})
1.3 实际使用
- 为了保证用户体验,需要用户下载的JS文件体积更小,所以使用非完整版
- 为了保证开体验,开发者可直接在Vue文件里写HTML标签,不写h函数
- 矛盾点在于非完整版只支持h函数,为了解决这个问题,我们使用vue-loader把vue文件里的HTML转为h函数
因此实际使用推荐:使用非完整版,然后配合vue-loader和vue文件。
2. tempate 和 render
template----html的方式做渲染;
render----js的方式做渲染
render是一种编译方式,render里有一个函数h,这个h的作用是将单文件组件进行虚拟DOM的创建,然后再通过render进行解析。
h就是createElement()方法:createElement(标签名称,属性配置,children)
template也是一种编译方式,但是template最终还是要通过render的方式再次进行编译。
区别:
render渲染方式可以让我们将js发挥到极致,因为render的方式其实是通过createElement()进行虚拟DOM的创建。逻辑性比较强,适合复杂的组件封装。template是类似于html一样的模板来进行组件的封装。render的性能比template的性能好很多render函数优先级大于template
3. 使用 codesandbox.io 快速搭建 Vue 项目
codesandbox.io 为我们提供了一种在线简易的创建vue项目的方式
3.1 进入官网,点击 create sandbox
3.2 选择需要创建的项目类型 Vue
3.3 项目创建完成
3.4 如何下载代码
选择 File 中的 Export to Zip,下载并解压