1.vue2.0 css
Vue (读音 /vjuː/,相似于 view) 是一套用于构建用户界面的渐进式框架。html
HTML中的DOM与其余的部分独立开来划分出一个层次,这个层次就叫作视图层
2.Webpack前端
Webpack是一个前端打包和构建工具。vue
webpack有四个核心概念:node
打包:减小浏览器页面的请求,将图片/脚本代码/,打包成一个文件,只发起一次请求,将资源所有下载。webpack
构建:babel转换,Sass,Less,stylus的CSS预处理器ios
3. nodegit
一般状况下,JavaScript的运行环境都是浏览器,所以JavaScript的能力也就局限于浏览器能赋予它的权限了。好比说读写本地系统文件这种操做,通常状况下运行在浏览器中的JavaScript代码是没有这个操做权限的。web
Node.js是一个服务端的JavaScript运行环境,经过Node.js能够实现用JavaScript写独立程序。即便你不用Node.js写独立程序,也得配一个Node.js运行环境,毕竟不少前端工具都是使用它写的。vue-cli
4. npm
NPM是一个node.js的包管理器。
包的依赖关系一直是个很头疼的问题,如这个包的代码自己可能还调用了其余的包,那么咱们使用时还须要其余的包,在本身的项目中引入这个依赖的包将变得十分困难。
NPM能够安装和管理包。
5.Vue-CLi
它是一个vue.js的脚手架工具。自动生成好项目目录,配置好Webpack,以及各类依赖包的工具
6. Vuex
Vuex是vue的一个状态管理器。用于集中管理一个单页应用程序中的各类状态。
7. Vue-route
Vue-route是vue的一个前端路由器,路由器是一个管理请求入口和页面映射关系的东西。它能够实现对页面局部进行无刷新的替换,让用户感受就像切换到了网页同样。
8.Axios
Axios是一个基于promise的http库,能够用在浏览器和node.js中
因此要学Vue须要学多少东西?
1.ECMAScript6的新增功能(promise构造函数,)
2.webpack的配置打包(项目中的配置文件)
3.ESLint配置(一个代码规范和错误检查工具)
4.bable配置(ES6和ES5转换器)
5.npm使用(包的安装与依赖)
6.Vuex(一个存储数据的状态管理器)
7.vue-Route(路由)
8.vue-cli(一键全家桶工具)
…………(html/css/js基本语法就不用多说了,宝宝心累……)
实践出真知,干巴巴的读官方文档真是有苦难言。
宝宝直接一键全家桶后才开始慢慢去了解更多的……
开始使用前,请确保你有这些:
不懂安装的请去别处搜索,有别的小姐姐小哥哥会告诉你的。
在cmd中查看是否安装,用的版本号是多少,输入命令,有提示说明安装了。(vue 的版本必定要用大写)
> node -v v8.9.4 >vue -V 2.9.3 >npm -v 6.1.0
1.建立项目
以上已安装好,请尽情的奔放……
打开cmd命令,进入你须要建立项目的目录下,好比:我要在d盘的project下建立一个名为mydemo的项目
D:\project>vue init webpack mydemo
以后一大串,项目名称,做者,是否build,是否使用代码规范等等一系列,宝宝是一直entry下去的。
而后它会提示三个命令:
cd mydemo //进入你所在项目 npm install //安装依赖包 npm run dev //运行项目
2.安装依赖包
你的文件夹有如下基本文件夹:build,config,src,static。
生成的项目没法直接运行,否则会报错,项目自己依赖不少包模块,你须要安装。
打开cmd进入你的项目目录下:
D:\project\mydemo>npm install
这个过程会好久。
完成以后,项目下会多出一个node_modules文件夹,这就是咱们项目所需的依赖包。
3.运行项目
打开cmd进入你的项目目录下:
D:\project\mydemo>npm run dev
会提示项目运行地址:http://localhost:8080
浏览器进入地址,你会看到vue图标,说明项目运行成功。
用cmd命令行很麻烦,若是编码软件支持,能够直接用编码软件直接打开终端运行,较为方便。
这个时候,我就去看官方文档去了,了解一下:
官方文档仍是不错的,受益颇多……
每一个Vue实例在被建立以前都要通过一系列的初始化过程,这个过程就是vue的生命周期。
以下:建立前,建立结束,挂载前,挂载结束,更新前,更新结束,销毁前,销毁结束
el: '#app', data: { message: 'Vue的生命周期' }, beforeCreate: function() { console.group('------beforeCreate建立前状态------'); console.log("%c%s", "color:red" , "el : " + this.$el); //undefined console.log("%c%s", "color:red","data : " + this.$data); //undefined console.log("%c%s", "color:red","message: " + this.message) //undefined }, created: function() { console.group('------created建立完毕状态------'); console.log("%c%s", "color:red","el : " + this.$el); //undefined console.log("%c%s", "color:red","data : " + this.$data); //已被初始化 [object object] console.log("%c%s", "color:red","message: " + this.message); //已被初始化 Vue的生命周期 }, beforeMount: function() { console.group('------beforeMount挂载前状态------'); console.log("%c%s", "color:red","el : " + (this.$el)); //已被初始化[object HTMLDivElement] console.log(this.$el);//<div id="app">...</div> console.log("%c%s", "color:red","data : " + this.$data); //已被初始化 [object object] console.log("%c%s", "color:red","message: " + this.message); //已被初始化 Vue的生命周期 }, mounted: function() { console.group('------mounted 挂载结束状态------'); console.log("%c%s", "color:red","el : " + this.$el); //已被初始化[object HTMLDivElement] console.log(this.$el); //<div id="app">...</div> console.log("%c%s", "color:red","data : " + this.$data); //已被初始化 [object object] console.log("%c%s", "color:red","message: " + this.message); //已被初始化 Vue的生命周期 }, beforeUpdate: function () { console.group('beforeUpdate 更新前状态===============》'); console.log("%c%s", "color:red","el : " + this.$el); console.log(this.$el); console.log("%c%s", "color:red","data : " + this.$data); console.log("%c%s", "color:red","message: " + this.message); }, updated: function () { console.group('updated 更新完成状态===============》'); console.log("%c%s", "color:red","el : " + this.$el); console.log(this.$el); console.log("%c%s", "color:red","data : " + this.$data); console.log("%c%s", "color:red","message: " + this.message); }, beforeDestroy: function () { console.group('beforeDestroy 销毁前状态===============》'); console.log("%c%s", "color:red","el : " + this.$el); console.log(this.$el); console.log("%c%s", "color:red","data : " + this.$data); console.log("%c%s", "color:red","message: " + this.message); }, destroyed: function () { console.group('destroyed 销毁完成状态===============》'); console.log("%c%s", "color:red","el : " + this.$el); console.log(this.$el); console.log("%c%s", "color:red","data : " + this.$data); console.log("%c%s", "color:red","message: " + this.message) }
created:初始化事件,进行数据监测,可见data已经有值,但el并无变化。
beforemount:
判断实例是否有el节点,在建立实例时是否有挂载DOM节点,vm.$mount('#app'),如若没有,生命周期结束,中止编译。
此时<div>{{message}}</div>
并无值
mounted:挂载完成后,data的message才会真正在视图中显示出文字。
deforeUpdata:data变化,从新渲染。
其余不会解释了,看其余文档,细嚼慢咽吧……
配置文件
diss文件夹
build后出现的打包文件夹
src
应当包含如下文件(单页为例)
- assets//图片css
css
img- common //共用js和api
- components //组件
- router
index.js //路由配置- app.vue //.vue入口
- index.js //js入口,至关于(main.js)
package.json
用来管理本地安装 npm 包的惟一文件。它描述了当前项目依赖的包的列表,包含项目依赖包的版本,便于项目管理和移植
.gitignore
忽略文件
.DS_Store node_modules/ /dist/ npm-debug.log* yarn-debug.log* yarn-error.log* /test/unit/coverage/ /test/e2e/reports/ selenium-debug.log .idea .vscode *.suo *.ntvs* *.njsproj *.sln