浅析Vue 两个版本的区别和使用方法

274 阅读2分钟

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,下载并解压