第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 yam 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 iVew 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