VUE CLI

什么是VUE CLI

如果你只是简单写几个Vue的Demo程序,那么你不需要Vue CLI.

如果你在开发大型项目,那么你需要,并且必然需要使用Vue CLI

使用Vue.js开发大型应用时,我们需要考虑代码目录结构、项目结构和部署、热加载、代码单元测试等事情。

如果每个项目都需要手动完成这些工作,那无疑效率比较低效,所以通常我们会使用一些脚手架工具来帮助完成这些事情。

CLI是什么意思?

CLI是Command-Line Interface,翻译为命令行界面,但是俗称脚手架。

Vue CLI是一个官方发布vue.js项目脚手架

使用vue-cli可以快速搭建Vue开发环境以及的webpack配置。

VUE CLI使用前提 - Node

安装nodejs

直接在官网中下载安装:https://nodejs.org/zh-cn/

检测安装的版本

默认情况下自动安装Node和NPM

Node环境要求8.9以上或者更高版本

node  -v

什么是NPM?

npm的全称是Node Package Manager

是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准

后续我们会经常使用NPM来安装一些开发过程中的依赖包

拓展:cnpm安装

由于国内直接使用npm的官方镜像是非常慢的,这里推荐使用淘宝NPM镜像

你可以使用淘宝定制的cnpm(gzip压缩支持)命令行工具代替 默认的npm:

npm install -g cnpm --registry=https://registry.npm.taobao.org

这样就可以使用cnpm命令来安装模块了。

cnpm install [name]

VUE CLI使用前提 - webpack

Vue.js官方脚手架工具就使用了webpack模板

对所有的资源会压缩等优化操作

它在开发过程中提供了一套完整的功能,能够使我们开发过程中变的高效。

webpack的全局安装

npm install webpack -g

Vue CLI的使用

安装Vue脚手架

npm install -g @vue/cli

查看Vue CLI版本

vue -V

拉取 2.x 模板 (旧版本)

Vue CLI >= 3 和旧版使用了相同的 vue 命令,所以 Vue CLI 2 (vue-cli) 被覆盖了。如果你仍然需要使用旧版本的 vue init 功能,你可以全局安装一个桥接工具:

npm install -g @vue/cli-init
# `vue init` 的运行效果将会跟 `vue-cli@2.x` 相同
vue init webpack my-project

Vue CLI2初始化项目

vue init webpack my-project

project name (项目的名称)

project description(A Vue.js project)项目描述信息

Author 作者

Vue build

1.Runtime * Compiler

2.Runtime-only

Install vue-router 是否安装路由

use ESLint to lint your code? 是否使用ESLint 语法规范

Pick an ESLint preset 选择规范

Set up unit tests 是否在项目中集成单元测试

Vue CLI3初始化项目

vue create my-project

vue-cli 3 与 2 版本的区别

vue-cli 3 是基于 webpack 4 打造,vue-cli 2 还是 webpack 3

vue-cli 3 的设计原则是 “ 0 配置”,移除的配置文件根目录下的,build和config等目录

vue-cli 3 提供了vue ui命令,提供了可视化配置,更加人性化

移除了static文件夹,新增了public文件夹,并且index.html移动到public中

Vue创建项目中的 runtime-compiler 和 runtime-only 两种模式

一、问题
在使用 vue-cli 脚手架构建项目时,会遇到一个构建选项 Vue build,有两个选项,Runtime + Compiler和Runtime-only:

· Runtime + Compiler: recommended for most users

(运行程序+编译器:推荐给大多数用户)

· Runtime-only: about 6KB lighter min+gzip, but templates (or any Vue-specificHTML) are ONLY allowed in .vue files - render functions are required elsewhere

(仅运行程序: 比上面那种模式轻大约 6KB min+gzip,但是 template (或任何特定于vue的html)只允许在.vue文件中使用——其他地方用需要 render 函数)

其实构建时的英文解释已经很简洁清晰了,但是第一次看的话或者不了解英文可能还是会比较 懵逼

下面是对两种模式详细的比较与解释

二、区别
1、runtime-only 比 runtime-compiler 轻 6kb

2、runtime-only 运行更快

3、runtime-only 其实只能识别render函数,不能识别template,.vue文件中的也是被 vue-template-compiler 翻译成了render函数 ,所以runtime-only只能在.vue里写 template

三、解释
1、两种模式生成的 脚手架 即(代码模板)其实区别只有在 main.js 中,其他都是一样的:

在这里插入图片描述

可以发现一个 是用 template + component 而另一个 则是 用 render 函数

2、render函数: h => h(App) :

简单地说就是 h 函数就是 createElement 函数,用于创建 虚拟DOM

3、runtime + compiler 中 Vue 的运行过程:

(1)首先将vue中的template模板进行解析解析成abstract syntax tree (ast)抽象语法树

(2)将抽象语法树在编译成render函数

(3)将render函数再翻译成virtual dom 虚拟dom

(4)将虚拟dom显示在浏览器上

4、runtime-only 更快的原因:

runtime-only比runtime-compiler更快,因为它省略了vue内部过程中的第一个过程,如果是runtime-compiler

那么main.js中就会出现template从而需要过程一导致增加了一个过程,同时增加了大小

而 runtime-only 模式中不是没有写 template ,只是把 template 放在了.vue 的文件中了

并有一个叫 vue-template-compiler的在开发依赖时将.vue文件中的 template 解析成 render 函数了

因为是开发依赖,不在最后生产中,所以最后生产出来的运行的代码没有template

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值