超~~简单就能理解Vue的两个版本

456 阅读1分钟

首先上一张图

如上图所示:

  • Vue在使用中分为完整版非完整版(运行时版)

完整版

  • 在生产环境下使用CDN引入的完整版Vue为vue.min.js;
  • 代码体积比非完整版约大40%,原因在于为了获取视图(完整版可直接读取html文件或template里的html字符串以获得视图),需要内置compiler编译器;
  • 使用@vue/cli引入时需要额外配置。
new Vue({
	template:`
    	<div>{{hi}}</div>//我是完整版,但是我需要编译器
    `
})

非完整版(运行时版)

  • 在生产环境下使用CDN引入的非完整版Vue为vue.runtime.min.js;
  • 代码体积小,因为它没有如完整版那样内置compiler编译器,所以也不能读取html文件或template里的html字符串以获得视图。其获取视图的方式为:创建.vue文件写html等,通过vue-loader把.vue文件内的html转为h函数,h函数进而创建视图。此项是两个版本间的主要区别。
  • 使用@vue/cli引入时默认即为非完整版,无需配置。
new Vue({
  render (h) {
    return h('div', this.hi)//我是不完整版,我不需要编译器
  }
})

那完整代码和非完整版如何选择

实践证明:选择非完整版,然后配合vue-loader和vue文件。

因为:

  • 保证用户体验,用户下载的JS文件体积更小(小30%),但只支持h函数。
  • 保证开发体验,开发者可以直接在vue文件里写HTML标签,而不用写h函数。
  • 累活让vue-loader来做,vue-loader把vue文件里的HTML转为h函数。