Vue2+webpack+node 配置+入门+详解
Vue2介绍
1.vue2.0
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。
- Vue 的核心库只关注视图层
- 采用单文件组件
- 复杂大型单页应用程序(SPA)
- 响应式的数据绑定,与组件化的开发
HTML中的DOM与其他的部分独立开来划分出一个层次,这个层次就叫做视图层
2.Webpack
Webpack是一个前端打包和构建工具。
webpack有四个核心概念:
- 入口(entry)指示 webpack 应该使用哪个模块,来作为构建其内部依赖图的开始。可以单个入口或多个入口
- 输出(output)输出它所创建的 bundles,以及如何命名这些文件,默认值为 ./dist。
- loader()loader 可以将所有类型的文件转换为 webpack 能够处理的有效模块
- 插件(plugins)插件则可以用于执行范围更广的任务。插件的范围包括,从打包优化和压缩,一直到重新定义环境中的变量。插件接口功能极其强大,可以用来处理各种各样的任务
打包:减少浏览器页面的请求,将图片/脚本代码/,打包成一个文件,只发起一次请求,将资源全部下载。
构建:babel转换,Sass,Less,stylus的CSS预处理器
3. node
通常情况下,JavaScript的运行环境都是浏览器,因此JavaScript的能力也就局限于浏览器能赋予它的权限了。比如说读写本地系统文件这种操作,一般情况下运行在浏览器中的JavaScript代码是没有这个操作权限的。
Node.js是一个服务端的JavaScript运行环境,通过Node.js可以实现用JavaScript写独立程序。即使你不用Node.js写独立程序,也得配一个Node.js运行环境,毕竟很多前端工具都是使用它写的。
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中
- 支持浏览器和node.js
- 支持promise
- 能拦截请求和响应
- 能转换请求和响应数据
- 能取消请求
- 自动转换JSON数据
- 浏览器端支持防止CSRF(跨站请求伪造)
所以要学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基本语法就不用多说了,宝宝心累……)
安装
实践出真知,干巴巴的读官方文档真是有苦难言。
宝宝直接一键全家桶后才开始慢慢去了解更多的……
开始使用前,请确保你有这些:
- node.js
- npm
- vue
- vue-cli
- 代码编辑软件(宝宝一直用webstorm,当然也有其他的……)
不懂安装的请去别处搜索,有别的小姐姐小哥哥会告诉你的。
在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实例,实例的生命周期
- 模板语法
- 指令:v-if,v-show,v-for,v-bind,v-on,v-model
- 数据的处理如何与指令或模板结合
- class/style的绑定
- 组件
- 单页与多页
- 路由
- 组件注册,通信
官方文档还是不错的,受益颇多……
生命周期
每个Vue实例在被创建之前都要经过一系列的初始化过程,这个过程就是vue的生命周期。
如下:创建前,创建结束,挂载前,挂载结束,更新前,更新结束,销毁前,销毁结束
- beforeCreate
- created
- beforeMount
- mounted
- beforeUpdate
- updated
- beforeDestroy
- destroyed
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变化,重新渲染。
其他不会解释了,看其他文档,细嚼慢咽吧……
文档解说
配置文件
- webpack.base.conf.js
基础的环境配置,可以说是各个环境(包括开发环境,生产环境,测试环境)都需要的配置,公用配置部分。
包含,编译入口,输出路径和命名规则,省略拓展名,配置很长的相对路径的别名,loader配置不同模块的处理规则 - webpack.dev.conf.js
webpack开发环境的核心配置文件,系统配置文件。
当npm run dev时,运行的就是此文件。
包含,插件 - webpack.prod.conf.js
webpack生产环境的核心配置文件,系统配置文件。
当npm run build时,运行的就是此文件。
包含,打包, - config/index.js
全局配置文件。
包含,,是否使用代码规范,项目入口,端口,服务器代理,
前后台分离时必须部署配置此文件
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
项目运行流程
Vue2+webpack+node 配置+入门+详解的更多相关文章
- JAVA JDK 环境变量配置 入门详解 - 精简归纳
JAVA JDK 环境变量配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 13 转载请注明出处!️ 目录 JAVA JDK 环境变量配置 入门详解 - 精简归纳 一.为什么j ...
- Python安装与环境变量配置 入门详解 - 精简归纳
Python安装与环境变量配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 24 转载请注明出处!️ 目录 Python安装与环境变量配置 入门详解 - 精简归纳 一.下载Py ...
- gcc g++ 安装与配置 入门详解 - 精简归纳
gcc g++ 安装与配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 24 转载请注明出处!️ 目录 gcc g++ 安装与配置 入门详解 - 精简归纳 一.下载MinGW ...
- Sublime Text3 for Java 编译运行环境配置 入门详解 - 精简归纳
Sublime Text3 for Java 编译运行环境配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 24 转载请注明出处!️ 目录 Sublime Text3 for ...
- Cisco思科模拟器 交换机IP地址的配置 入门详解 - 精简归纳
Cisco思科模拟器 交换机IP地址的配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 10 / 10 转载请注明出处!️ 目录 Cisco思科模拟器 交换机IP地址的配置 入门详解 ...
- GoSDK的安装及环境变量配置 入门详解 - 精简归纳
GoSDK的安装及环境变量配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 10 / 29 转载请注明出处!️ 目录 GoSDK的安装及环境变量配置 入门详解 - 精简归纳 一.进入G ...
- Cisco思科模拟器路由器各个端口IP地址的配置及路由协议RIP的配置 入门详解 - 精简归纳
Cisco思科模拟器路由器各个端口IP地址的配置及路由协议RIP的配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 11 / 21 转载请注明出处!️ 附: 交流方式: ️ ️ ️ Q ...
- JDK安装与基础环境变量配置 入门详解 - 精简归纳
JDK安装与基础环境变量配置 JERRY_Z. ~ 2020 / 9 / 17 转载请注明出处!️ 目录 JDK安装与基础环境变量配置 一.下载 二.安装 (1).双击.exe文件 (2).全选安装工 ...
- webpack入门详解
webpack入门详解(基于webpack 3.5.4 2017-8-22) webpack常用命令: webpack --display-error-details //执行打包 webpa ...
随机推荐
- Unity 碰撞的条件
- Python 添加模块
一.方法1: 单文件模块直接把文件拷贝到 $python_dir/Lib 二.方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行:python setup.py in ...
- hadoop操作权限问题:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
今天想从Eclipse向hdfs上传文件时遇到了一个权限问题,日志如下: ERROR hive.log: Got exception: org.apache.hadoop.security.Acces ...
- 文本编辑简体中文专业版EmEditor Professional v12.0.8(12/27/2012更新)姓名+注册码
这是一个简单好用的文本编辑器,支持多种配置,自定义颜色.字体.工具栏.快捷键设置,可以调整行距,避免中文排列过于紧密,具有选择文本列块的功能(按ALT 键拖动鼠标),并允许无限撤消.重做,总之功能多多 ...
- 个人整理的jsp、EL表达式、JSTL标签库的笔记,少概念多实用,需要的留下邮箱,会第一时间分享原稿PDF给大家!
jsp 第一章 jsp介绍及对比servlet 作用: 动态网页技术,动态的从数据库获取数据 jsp和servlet的优缺点: jsp优点:页面表现方便,利于写html代码 jsp缺点:业务逻辑处理麻 ...
- 去除pycharm的波浪线
PyCharm使用了较为严格的PEP8的检查规则,如果代码命名不规范,甚至多出的空格都会被波浪线标识出来,导致整个编辑器里铺满了波浪线,右边的滚动条也全是黄色或灰色的标记线,很是影响编辑.这里给大家分 ...
- 生产消费者模式与python+redis实例运用(基础篇)
根据这个图,我们举个简单的例子:假如你去某个餐厅吃饭,点了很多菜,厨师要一个一个菜的做,一个厨师不可能同时做出所有你点的菜,于是你有两个选择:第一个,厨师把所有菜都上齐了,你才开始吃:还有一个选择,做 ...
- C/S框架设计经验小结
C/S架构程序应用广泛,比如常见的QQ.微信.Outlook,还有手机上的各种APP都是C/S架构的.C指的是Client,即客户端,S指的是Server,即服务端. 经常听到初学者争论,是学C/S结 ...
- <Android 基础(二)> BroadcastReceiver
介绍 BroadcastReceiver:广播接收者,很形象,广播发送,类比生活中的广播,有能力听得到的都可以介绍到这个信息,然后在大脑中反映.对应到Android中就是SendBroadcast和o ...
- CentOS下内核TCP参数优化配置详解
主动关闭的一方在发送最后一个ACK后就会进入TIME_WAIT状态,并停留2MSL(Max Segment LifeTime)时间,这个是TCP/IP必不可少的. TCP/IP的设计者如此设计,主要原 ...