浅析Vue的两个版本

414 阅读2分钟

Vue有两个版本,完整版和非完整版,本文主要介绍一下这两个版本的区别和使用方法,以及怎么在codesandbox.io中构建简单的vue项目。

一、两个版本的区别

两个版本对应的文件名分别是vue.js和vue.runtime.js,分别对应的是完整版和非完整版。首先了解一下相关概念:

  • 完整版:同时包含编译器和运行时的版本。

  • 编译器:用来将模板字符串编译成为 JavaScript 渲染函数的代码。

  • 运行时:用来创建 Vue 实例、渲染并处理虚拟 DOM 等的代码。基本上就是除去编译器的其它一切。

完整版同时包含编译器和运行时的版本,非完整版只包含运行时,两个版本的主要区别如下图所示:

两个版本的优缺点:

完整版:

优点:可以直接将视图写在html 或者 js 的 template 中,比较方便。

缺点:① 由于包含编译器,因此完整版的体积比非完整版大30%左右。 ② html 文件中夹杂 vue 语法,导致各类型文件融合到一块,耦合性大

非完整版:

优点:代码体积小,耦合性低。

缺点:由于只能将视图写在 js 中,没有直接写在 html 中,因此SEO不友好,不利于搜索引擎搜索及收录,可以通过写好keywords、description、a标签、h标签等内容进行改进。

最佳实践:总是使用非完整版,然后配合 vue-loader 和 vue 文件。

二、两个版本的使用方法

此处引用bootcdn中的 vue.min.js 和 vue.runtime.min.js 来介绍两个版本的使用方法。

完整版的使用方式

由上述可知,完整版需要将视图直接写在 html 中,直接通过 html 获取视图,下面的内容就会直接在页面显示数字 0,同时为 button 标签添加了点击事件:

index.html中的内容: main.js中的内容(通过script标签引入会得到全局变量Vue):

非完整版的使用方式

第一种使用方式:在js中通过render函数得到视图:

index.html中不写视图内容: 在js中写render函数: 结果与完整版一样。

第二种使用方式:通过vue-loader的方式,在src目录下新建一个Demo.vue文件,定义好内容后在main.js中导入该文件得到一个对象,再将该对象放在render函数中。

Demo.vue的内容: main.js中的内容:

三、在codesandbox.io中构建简单的vue项目

1.进入codesandbox.io

2.选择Create a Sandbox: 3.选择vue: 4.项目搭建成功,开始写代码: 5.可直接导出为zip文件到本地: