Vue-cli 4.5、Vue 脚手架学习/入门/超详细

Vue-cli脚手架官方中文文档:https://cli.vuejs.org/zh/guide/

原文链接:https://www.yuque.com/docs/share/fcad9de4-9828-405c-9c5c-bcb6dbe894d9?# 《Vue-cli4.5 脚手架学习》

前言/脚手架的介绍与作用:

1. vue脚手架是什么?

它是一个专门为单页面(SPA)应用快速搭建繁杂的脚手架,它是基于webpack的基础开发出来的一款能够快速的帮助

我们构建一个用来开发vue的项目目录、结构(vue和webpack的项目模板)。

vue脚手架通常使用在大型项目中,能够加快我们的开发速度。而小型项目不推荐使用脚手架,因为反而

会拖慢我们项目的开发速度

2. 为什么会有vue脚手架?

因为 webpack 配置繁琐, 阻止一批想用 vue 但是不会 webpack 的开发人员,所以作者直接将所有 vue 项目中用到

的配置全部帮你写好了,这样,就不需要开发人员再去配置基础 webpack 配置项了

也就是说,使用 vue-cli 这个脚手架工具后,再也不用担心 webpack 配置问题了, 我们前端只需要写 vue 代码,

来实现功能即可

3. .vue文件是什么?

.vue文件是单文件组件

什么是单文件组件 ? 后缀为 .vue 的文件

单文件组件的三个组成部分 (代码块 : scaffold 自动提示)

template (模板结构)

script 组件的代码逻辑

style 样式

注意点 :

单文件组件,无法直接在浏览器中使用,必须经过 webpack 这种打包工具,处理后,才能在浏览器中使用

  4. vue脚手架的基本开发流程:

一、脚手架的基础使用与理解:

1.1 安装/升级 :

//安装npm i -g @vue/cli//升级npm update -g @vue/cli//查看当前脚手架版本vue -V//安装指定版本npm i -g @vue/cli@版本号

1.2 创建一个项目:

vue create my-project//自定名称vue create 项目名称

1.2.1 通过键盘上下选择创建什么类型的项目:

创建vue2项目

创建vue3项目

或者自定义配置项目

注:也可在创建好的项目ui界面进行后期添加、卸载插件

1.2.2 创建vue3项目:

部分人可能会显示这个,询问此项目以后使用什么命令行语句

创建好后

1.2.3 自定义配置安装:

选择项目中需要安装的插件,键盘上下选择,空格选中、取消,回车下一步

Choose Vue Version 是否选择安装的脚手架版本,默认会创建2.0版本

Babel是一个javascript编译器

TypeScript 支持使用 TypeScript 书写源码

Progressive Web App (PWA) Support PWA 支持。

Router 支持 vue-router 。

Vuex 支持 vuex 。

CSS Pre-processors 支持 CSS 预处理器。

Linter / Formatter 支持代码风格检查和格式化。

Unit Testing 是否单元测试(具体百度)

E2E Testing 是否自动化测试(具体百度,我也不懂什么意思)

注:如果还没选好配置就摁下了回车,可 Ctrl+D 退出创建

1.2.4 自定义配置详细安装过程选项:

I. 选择版本(这里选择3.x)

II. history模式选择(主要是网址后面是否会有#符号的区别)

选y网址后面会添加#符号

n相反(推荐)

III. 选择使用什么css预处理语言

sass两个版本解析

node-sass 是用 node(调用 cpp 编写的 libsass)来编译 sass;

dart-sass 是用 drat VM 来编译 sass;

node-sass是自动编译实时的,dart-sass需要保存后才会生效

推荐 dart-sass 性能更好(也是 sass 官方使用的),而且 node-sass 因为国情问题经常装不上

IV. 语法检测选择

选择EsLint + Prettier

V. 什么时候进行检测

保存时进行检测(推荐)

提交时检测(我翻译的意思,不知道准不准确)

VI. 配置文件选择

选项1:专门新建一个文件夹存放

选项2:放在package.json里(推荐都放在一文件夹,方便后期管理)

VII. 是否保存以上配置

y保存

n不保存(保存后会出现命名提示,给当前的配置进行命名。再之后每次搭建项目都会出现自己保存的配置名字)

VIII. 安装完成

创建完成后的操作,跳去1.5看

VIII. 如果需要安装其他项目依赖

npm i --save axios

也可以

vue add axios // vue add 需要安装的依赖名字

也可以使用vue-ui进行安装项目依赖(个人推荐)

1.3 使用vue-ui进行创建/管理项目 :

vue ui //终端输入后进入ui界面

vue-ui界面:(默认英文,可以使用浏览器翻译插件翻译成中文)

使用vue-ui创建项目更加方便些,所有创建过程都会被可视化

开始创建

详情设置

预设开始就与在命令行创建一样

选择手动后,自己配置项目

所有选项与操作都被ui化

是否保存预设

创建好后

1.5 运行指令:

// 切换到创建的项目文件夹:    cd my-project// 运行项目:    npm run serve//yarn方式    yarn serve// 运行后显示这两行网址// 第一个只能你这个电脑打开    - Local:  http://localhost:8080/// 第二个,只要和电脑同一个网络,其他设备也可以打开//发送到手机上可用手机打开    - Network: http://192.168.2.139:8080///查看项目默认安装的依赖    npm ls --depth 0

正常运行后的界面(电脑端):

手机端:

输入 Ctrl+c 关闭项目

打包项目

npm run build

打包成功后,项目文件中通会多出 dist 文件夹

1.6 文件目录解析:

node_modules:node安装的依赖包(vue脚手架程序很大是因为配置了node依赖包,

真正项目的本体是打包过后的dist文件夹)

dist:打包后的文件夹

public:公共静态资源;任何放置在public的静态资源都会被简单的复制,而不经过webpack的处理。

一般用来存放不会改变的静态资源和webpack文件和不支持的第三方库

favicon.ico:默认图标

index.html:(vue脚手架有特定的文件格式,打包的时候会识别这些格式

这个文件名不可改,如果改了,运行时会报错

如果要改,还需要修改相应的配置文件才行)

src:存放代码的文件及文件夹(在这个文件夹中进行开发、写代码)

asscts:存储项目中的静态文件(图片/字体/css等等)

components:存放项目中的自定义组件(小组件以及公共组件)

views:存放大组件,页面级组件,路由级别的组件

router:存放路由(VueRouter)相关文件

store:存储Vuex(状态管理器)相关文件

App.vue:项目的根组件(项目所展示的页面)

main.js:项目的入口文件

.gitignore:git忽略文件(因为git上传会忽略空文件夹)

babel.config.js:babel相关配置文件(将es6语法转为浏览器能够识别的代码)

package.json:vue脚手架描述文件,相关信息以及运行、打包指令、插件信息都在这里

README.md:项目说明

yarn.lock:

1.7 安装脚手架额外插件:

在脚手架目录新建一个.js文件(与package.json文件同级):

//配置信息module.exprots = { //模块导出    //需要安装的插件:  devServer:{ //配置信息    port: 8080, //端口号    host: 'localhostl', //地址    open: true //自动打开浏览器  }}

1.8 vue脚手架文件夹及文件详解:

main.js文件内容详解:

//es6引入文件importVuefrom'vue'//引入vueimportAppfrom'./App.vue'//引入App.vue页面/*productionTip设置为 false ,可以阻止 vue 在启动时生成生产提示开发环境下,Vue 会提供很多警告来帮你对付常见的错误与陷阱。而在生产环境下,这些警告语句却没有用,反而会增加应用的体积。此外,有些警告检查还有一些小的运行时开销,这在生产环境模式下是可以避免的*/Vue.config.productionTip=false//这个vue实例加载方式是典型的es6写法newVue({router,//挂载路由store,//挂载Vuex状态管理render:h=>h(App)//render渲染;加载app.vue页面;h代表hypersript(超脚本)}).$mount('#app')//将这个vue实例手动挂载到#app

App.vue(单文件组件)页面详解:

//组件内容(页面展示内容)<template><divid='app'>    ...</div></template>//组件控制区<script>import组件名from'./components/小组件名.vue'//引入小组件  //全局组件定义Vue.component('组件名',组件名  );exportdefault{//暴露出当前根组件叫'APP',且上面的根节点是'app'name:'App',data(){return{//存放组件数据      }    }components:{//定义局部组件,即子组件组件名:{template:xxx        }    }  }</script>//style样式;注意:这里的样式以及views和components组件的样式都是全局样式//如果不通过单独添加样式名设置样式,则会作用到所有相应的标签上//可以通过添加scoped声明此样式只此文件用<stylescopedlang="sass">//lang="使用什么css预处理语言"  ...</style>

router文件夹下面的index.js文件详解:

//导入文件import...//路由内容constroutes=[...]//路由实例化constrouter=newVueRoutter({routes})//导出exportdefaultrouter

views文件夹:

存放大型页面级组件

//页面内容<template><定义的小组件名msg="传给小组件的值"/></template>//js代码<script>//引入小组件import小组件名from'小组件路径'    //定义小组件exportdefault{name:'组件名',comoponets:{小组件名    }  }</script>

components文件夹:

存放页面内的各种小组件

//页面内容<template>    小组件内容(html代码)</template>//js代码export default{  name: '小组件名',//不要使用_进行命名,因为还需要在标签中使用  props: { //组件数据    msg:String //定义传过来的数据类型  }                      //也可以不定义数据类型}//css代码<style>  ...</style>

asscts文件夹:

存储项目中的所有静态文件(图片及字体文件等等)

二、使用脚手架进行vue页面开发:

1.添加组件

views文件夹下添加Test.vue文件

components文件夹下添加VueTest.vue

router文件夹下index.js文件

App.vue根组件页面

页面效果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容