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 的版本一定要用大写)

  1. > node -v
  2. v8.9.4
  3. >vue -V
  4. 2.9.3
  5. >npm -v
  6. 6.1.0

构建一个项目

1.创建项目

以上已安装好,请尽情的奔放……

打开cmd命令,进入你需要创建项目的目录下,比如:我要在d盘的project下创建一个名为mydemo的项目

  1. D:\project>vue init webpack mydemo

之后一大串,项目名称,作者,是否build,是否使用代码规范等等一系列,宝宝是一直entry下去的。

然后它会提示三个命令:

  1. cd mydemo //进入你所在项目
  2. npm install //安装依赖包
  3. npm run dev //运行项目

2.安装依赖包

你的文件夹有以下基本文件夹:build,config,src,static。
生成的项目无法直接运行,不然会报错,项目本身依赖很多包模块,你需要安装。

打开cmd进入你的项目目录下:

  1. D:\project\mydemo>npm install

这个过程会很久。

完成之后,项目下会多出一个node_modules文件夹,这就是我们项目所需的依赖包。

3.运行项目

打开cmd进入你的项目目录下:

  1. 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
  1. el: '#app',
  2. data: {
  3. message: 'Vue的生命周期'
  4. },
  5. beforeCreate: function() {
  6. console.group('------beforeCreate创建前状态------');
  7. console.log("%c%s", "color:red" , "el : " + this.$el); //undefined
  8. console.log("%c%s", "color:red","data : " + this.$data); //undefined
  9. console.log("%c%s", "color:red","message: " + this.message) //undefined
  10. },
  11. created: function() {
  12. console.group('------created创建完毕状态------');
  13. console.log("%c%s", "color:red","el : " + this.$el); //undefined
  14. console.log("%c%s", "color:red","data : " + this.$data); //已被初始化 [object object]
  15. console.log("%c%s", "color:red","message: " + this.message); //已被初始化 Vue的生命周期
  16. },
  17. beforeMount: function() {
  18. console.group('------beforeMount挂载前状态------');
  19. console.log("%c%s", "color:red","el : " + (this.$el)); //已被初始化[object HTMLDivElement]
  20. console.log(this.$el);//<div id="app">...</div>
  21. console.log("%c%s", "color:red","data : " + this.$data); //已被初始化 [object object]
  22. console.log("%c%s", "color:red","message: " + this.message); //已被初始化 Vue的生命周期
  23. },
  24. mounted: function() {
  25. console.group('------mounted 挂载结束状态------');
  26. console.log("%c%s", "color:red","el : " + this.$el); //已被初始化[object HTMLDivElement]
  27. console.log(this.$el); //<div id="app">...</div>
  28. console.log("%c%s", "color:red","data : " + this.$data); //已被初始化 [object object]
  29. console.log("%c%s", "color:red","message: " + this.message); //已被初始化 Vue的生命周期
  30. },
  31. beforeUpdate: function () {
  32. console.group('beforeUpdate 更新前状态===============》');
  33. console.log("%c%s", "color:red","el : " + this.$el);
  34. console.log(this.$el);
  35. console.log("%c%s", "color:red","data : " + this.$data);
  36. console.log("%c%s", "color:red","message: " + this.message);
  37. },
  38. updated: function () {
  39. console.group('updated 更新完成状态===============》');
  40. console.log("%c%s", "color:red","el : " + this.$el);
  41. console.log(this.$el);
  42. console.log("%c%s", "color:red","data : " + this.$data);
  43. console.log("%c%s", "color:red","message: " + this.message);
  44. },
  45. beforeDestroy: function () {
  46. console.group('beforeDestroy 销毁前状态===============》');
  47. console.log("%c%s", "color:red","el : " + this.$el);
  48. console.log(this.$el);
  49. console.log("%c%s", "color:red","data : " + this.$data);
  50. console.log("%c%s", "color:red","message: " + this.message);
  51. },
  52. destroyed: function () {
  53. console.group('destroyed 销毁完成状态===============》');
  54. console.log("%c%s", "color:red","el : " + this.$el);
  55. console.log(this.$el);
  56. console.log("%c%s", "color:red","data : " + this.$data);
  57. console.log("%c%s", "color:red","message: " + this.message)
  58. }

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

忽略文件

  1. .DS_Store
  2. node_modules/
  3. /dist/
  4. npm-debug.log*
  5. yarn-debug.log*
  6. yarn-error.log*
  7. /test/unit/coverage/
  8. /test/e2e/reports/
  9. selenium-debug.log
  10. .idea
  11. .vscode
  12. *.suo
  13. *.ntvs*
  14. *.njsproj
  15. *.sln

项目运行流程

Vue2+webpack+node 配置+入门+详解的更多相关文章

  1. JAVA JDK 环境变量配置 入门详解 - 精简归纳

    JAVA JDK 环境变量配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 13 转载请注明出处!️ 目录 JAVA JDK 环境变量配置 入门详解 - 精简归纳 一.为什么j ...

  2. Python安装与环境变量配置 入门详解 - 精简归纳

    Python安装与环境变量配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 24 转载请注明出处!️ 目录 Python安装与环境变量配置 入门详解 - 精简归纳 一.下载Py ...

  3. gcc g++ 安装与配置 入门详解 - 精简归纳

    gcc g++ 安装与配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 24 转载请注明出处!️ 目录 gcc g++ 安装与配置 入门详解 - 精简归纳 一.下载MinGW ...

  4. Sublime Text3 for Java 编译运行环境配置 入门详解 - 精简归纳

    Sublime Text3 for Java 编译运行环境配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 24 转载请注明出处!️ 目录 Sublime Text3 for ...

  5. Cisco思科模拟器 交换机IP地址的配置 入门详解 - 精简归纳

    Cisco思科模拟器 交换机IP地址的配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 10 / 10 转载请注明出处!️ 目录 Cisco思科模拟器 交换机IP地址的配置 入门详解 ...

  6. GoSDK的安装及环境变量配置 入门详解 - 精简归纳

    GoSDK的安装及环境变量配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 10 / 29 转载请注明出处!️ 目录 GoSDK的安装及环境变量配置 入门详解 - 精简归纳 一.进入G ...

  7. Cisco思科模拟器路由器各个端口IP地址的配置及路由协议RIP的配置 入门详解 - 精简归纳

    Cisco思科模拟器路由器各个端口IP地址的配置及路由协议RIP的配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 11 / 21 转载请注明出处!️ 附: 交流方式: ️ ️ ️ Q ...

  8. JDK安装与基础环境变量配置 入门详解 - 精简归纳

    JDK安装与基础环境变量配置 JERRY_Z. ~ 2020 / 9 / 17 转载请注明出处!️ 目录 JDK安装与基础环境变量配置 一.下载 二.安装 (1).双击.exe文件 (2).全选安装工 ...

  9. webpack入门详解

    webpack入门详解(基于webpack 3.5.4  2017-8-22) webpack常用命令: webpack --display-error-details    //执行打包 webpa ...

随机推荐

  1. 转 nagios监控oracle运行状况

    https://blog.csdn.net/heizistudio/article/details/8638488 nrpe安装脚本 nagios-plugins-1.4.13.tar.gznrpe- ...

  2. MVC学习6 学习使用Code First Migrations功能 把Model的更新同步到DB中

     参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-new-field-to-th ...

  3. C#数据库(MySQL)帮助类

    using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using System.Configura ...

  4. Lambda动态排序通用方法

    using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; us ...

  5. Android图表库XCL-Charts

    首先,这个是国人开发的,支持下必须顶!github项目地址:点击打开,由于项目的基本功能已经实现,所以项目作者也说以后基本不会在有更新了. 项目简介: Android图表库(XCL-Charts is ...

  6. 【iOS学习笔记】改变状态栏字体颜色

    Step1. info.plist中设置UIViewControllerBasedStatusBarAppearance为NO Step2. AppDelegate.m中添加 - (BOOL)appl ...

  7. ELF interpreter /libexec/ld-elf32.so.1 not found

    ELF interpreter /libexec/ld-elf32.so.1 not found错误, 其实就是在64位平台上运行32位软件的不兼容造成的.找个64的包安装就上ok了.

  8. PHP snippets

    Friendly file size string public static function bytesToSize($bytes) { if ($bytes < 1024) { retur ...

  9. vue-绑定style、css

    class.style的绑定1.在 v-bind 用于 class 和 style 时, Vue.js 专门增强了它.表达式的结果类型除了字符串之外,还可以是对象或数组2.绑定css2.1对象绑定2. ...

  10. 那些年,被我蠢哭了的php代码小错误~~~

    首先,我爱敲代码!!!而且我很喜欢修改bug,在看到那些bug的时候,我是兴奋的,毕竟当你解决这个bug之后感觉是很爽的. 在学习的过程中,看到无数的bug,有一些错误是很微小的,一般在PHP中都能通 ...