热门排行
简介
Vue.js是一个渐进式的JavaScript 框架,与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,它不仅易于上手,还便于与第三方库或既有项目整合。作为2016年社区*火的前端框架,越来越多的公司都在尝试用Vue来开发自己的项目。本书主要以项目维度,站在实战的角度,从项目的搭建,项目开发,到项目的优化,结合实际,多维度介绍了Vue.js。本书从实战场景出发,结合各种实用demo,结合开发环境构建,从无到有,剖析原理,全面介绍Vue2.0的实用技巧。后面几章重点讲解Vue内部实现机制,针对各种业务形态的支持以及网站调优方等等,是Vue技术体系追随者不可多得的实战宝典。
目 录
第1章 搭建开发环境 1
1.1 本地Node环境 1
1.1.1 Node.js 1
1.1.2 npm 7
1.1.3 yarn 12
1.1.4 npm vs yarn 17
1.2 ide相关配置 17
1.2.1 常用ide 17
1.2.2 Sublime text 17
1.2.3 Atom 20
1.2.4 WebStorm 22
1.2.5 VSCode 23
1.3 本章小结 27
第2章 从零搭建Vue工程 28
2.1 本地开发需要哪些工具 28
2.2 搭建Vue工程 29
2.2.1 Vue-cli 29
2.2.2 脚手架项目构成分析 30
2.3 webpack配置 32
2.3.1 webpack简介 32
2.3.2 webpack配置解析 33
第3章 API详解 45
3.1 全局变量 45
3.1.1 silent 45
3.1.2 optionMergeStrategies 45
3.1.3 devtools 46
3.1.4 errorHandler 48
3.1.5 ignoredElements 48
3.1.6 keyCodes 49
3.1.7 performance 49
3.1.8 productionTip 49
3.2 模板语法 50
3.3 指令 50
3.3.1 v-text 51
3.3.2 v-html 51
3.3.3 v-pre 51
3.3.4 v-cloak 52
3.3.5 v-once 53
3.3.6 v-if 54
3.3.7 v-else 54
3.3.8 v-else-if 55
3.3.9 v-show 55
3.3.10 v-for 56
3.3.11 v-bind 64
3.3.12 v-model 70
3.3.13 v-on 74
3.3.14 自定义指令 77
3.4 过滤器 79
3.5 计算属性 80
3.5.1 基础例子 80
3.5.2 计算属性vs Methods 81
3.5.3 计算属性缓存 81
3.5.4 Computed属性vs Watched属性 82
3.5.5 计算setter 83
3.6 观察者Watchers 84
3.7 组件的功能与使用 86
3.7.1 使用组件 86
3.7.2 组件开发 88
3.7.3 非Props属性 92
3.7.4 自定义事件 92
3.7.5 Slots内容分发 96
3.7.6 动态组件 99
3.7.7 组件的其他知识 100
3.8 继承与混合 104
3.8.1 Vue.extend 105
3.8.2 options里的extends 105
3.8.3 源码分析 105
3.8.4 合并策略 106
3.9 插件plugin 111
第4章 Vue组件库 115
4.1 Element 115
4.1.1 Element的设计 115
4.1.2 Element的UI 116
4.1.3 Element的优缺点 117
4.2 Mint UI 118
4.2.1 Mint UI的特性 118
4.2.2 Mint UI的优缺点 119
4.3 iView 119
4.3.1 iView简介 120
4.3.2 iView的优缺点 120
4.4 Vux 121
4.4.1 Vux简介 121
4.4.2 Vux优缺点 122
4.5 XCUI 122
4.5.1 XCUI简介 122
4.5.2 XCUI优缺点 123
第5章 官方周边库 124
5.1 Axios 124
5.1.1 功能 124
5.1.2 安装 124
5.1.3 Example 125
5.1.4 Axios API 126
5.1.5 请求配置 127
5.1.6 响应结构 130
5.1.7 配置的默认值/defaults 131
5.1.8 拦截器 132
5.1.9 错误处理 133
5.1.10 取消 134
5.1.11 Promises 135
5.1.12 TypeScript 135
5.2 Vuex的使用 135
5.2.1 State 135
5.2.2 Getters 137
5.2.3 Mutations & Actions 138
5.2.4 Modules 141
5.2.5 模块重用 145
5.3 Vue-router使用 146
5.3.1 安装 146
5.3.2 开始 146
5.3.3 动态路由匹配 147
5.3.4 编程式导航 151
5.3.5 命名路由 152
5.3.6 命名视图 153
5.3.7 重定向和别名 153
5.3.8 HTML5 History模式 154
5.3.9 后端配置例子 155
5.3.10 警告 155
5.3.11 导航钩子 156
5.3.12 过渡动效 159
5.3.13 数据获取 160
5.3.14 滚动行为 163
5.3.15 懒加载 164
第6章 Vue项目优化 166
6.1 状态过渡 166
6.1.1 过渡的概念 166
6.1.2 CSS过渡 166
6.1.3 Javascript钩子 167
6.2 Vue项目的自动化测试 170
6.2.1 unit tests 172
6.2.2 e2e测试 175
6.3 Typescript Support 179
6.3.1 Typescript 179
6.3.2 安装Typescript 180
6.3.3 Typescript和Vue结合 180
6.4 MPA 186
6.4.1 关于MPA的优劣势 187
6.4.2 如何实现MPA 187
6.5 Vue的异构 190
6.5.1 不属于异构的情况 191
6.5.2 通过封装成Vue组件的方式实现异构 192
6.5.3 通过directive的方式实现异构 194
6.5.4 循环嵌套Vue组件 197
6.6 服务端渲染 198
6.6.1 服务端渲染的概念 198
6.6.2 用Vue-ssr的意义 198
6.6.3 Vue-ssr的作用 198
6.6.4 Vue-ssr学习难度 198
6.6.5 技术栈 199
6.6.6 前后端数据策略 199
6.6.7 性能影响 199
6.6.8 安装 200
6.6.9 渲染一个Vue实例 200
6.6.10 一个例子 202
6.7 Vue的pre-render 204
第7章 原理解析 206
7.1 Virtual DOM原理 206
7.1.1 DOM 206
7.1.2 Virtual DOM算法 209
7.2 Vue精髓之响应式数据流 210
7.2.1 数据流演进史 210
7.2.2 Vue和React介绍 211
7.2.3 Vue的响应式数据流的优势 211
7.2.4 Object.defineProperty与订阅发布设计模式 213
7.2.5 Vue源码 214
7.2.6 Vue的render函数就是Watcher的expOrFn 218
7.3 Vuex2.0源码解析 219
7.3.1 Vuex的含义 219
7.3.2 源码分析 220
7.3.3 Vuex API分析 233
7.3.4 辅助函数 235
7.3.5 插件 239
7.3.6 一些函数的封装 242
7.4 Vue-router原理 244
7.4.1 Vue-router 244
7.4.2 Vue-router应用举例 244
7.4.3 Vue-router原理 245
第8章 进军WEEX 256
8.1 搭建WEEX基础环境 256
8.1.1 初始化:hello world 256
8.1.2 dotwe 257
8.2 分析首个WEEX工程代码 258
8.2.1 目录结构 258
8.2.2 通过serve起服务 258
8.2.3 webpack配置 259
8.2.4 页面开发 260
8.3 debug WEEX代码 260
8.3.1 web端调试 260
8.3.2 手机端调试 261
8.4 集成WEEX到已有应用 263
8.4.1 集成到Android 263
8.4.2 集成到iOS 268
8.5 使用WEEXpack构建移动应用 271