重磅推荐
【编辑推荐】
√ 前端大腕集体赞誉站台,随着阿里Weex开源,2016可谓Vue.js年!
√ 作为移动端*方案,Vue在React Native和Ionic之外另辟蹊径!
√ 滴滴前端团队潜心研究和实践Vue.js,得到框架作者尤雨溪盛赞!
√ 本书兼容和覆盖新版本Vue.js 2.0特性,同样适用于进阶人群!

【内容简介】
Vue.js是一个用来开发Web界面的前端库。本书致力于普及国内Vue.js技术体系,让更多喜欢前端的人员了解和学习Vue.js。如果你对Vue.js基础知识感兴趣,如果你对源码解析感兴趣,如果你对Vue.js 2.0感兴趣,如果你对主流打包工具感兴趣,如果你对如何实践感兴趣,本书都是一本不容错过的以示例代码为引导、知识涵盖全面的*选择。全书一共30章,由浅入深地讲解了Vue.js基本语法及源码解析。主要内容包括数据绑定、指令、表单控件绑定、过滤器、组件、表单验证、服务通信、路由和视图、vue-cli、测试开发和调试、源码解析及主流打包构建工具等。该书内容全面,讲解细致,示例丰富,适用于各层次的开发者。
【作者简介】

滴滴出行公共前端团队,主要负责公司级组件库和基础服务建设和前端解决方案。我们喜欢新技术,热衷沉淀和积累。
张耀春:公共前端团队负责人,人称“小春”,09 年接触前端,喜欢潜水、赛车和专研新技术。
黄轶:前端技术专家,擅长前端自动化、工程化及前端架构,喜欢开源,乐于分享。
王静:负责mis 项目开发管理,爱生活、爱冒险、爱挑战,对代码有一丢丢的小洁癖。
苏伟:负责MIS系统开发,熟悉Angular、Vue等开发框架,擅长使用工具来提高开发效率。
王瑾:负责webapp方向的开发,喜欢自己的代码终呈现在用户面前的感觉。
殷献勇:北邮土著,CS 硕士在读。享受编程,热爱前端。期待成为* JavaScript 技术栈工程师。


【媒体评论】

Vue.js是一个很令人着迷的前端框架,它既简洁又强大,各方面设计得恰到好处,值得深入学习理解。Vue.js 2.0也提供了Virtual DOM支持,使得它具有跨端渲染能力和更多想象力,未来大有可为。
—— 滴滴出行平台产品中心技术总监 杜欢

近几年,前端视图层框架领域百花齐放,Vue.js以其精致的API 、强大的组件化机制、小巧的体积赢得了不少开发者的芳心。在移动端 Web 应用领域,Vue.js已经差不多成为*方案。Vue 2.0吸收了其他框架的很多优点,为开发者提供了更多便利。
—— Teambition前端架构师 徐飞

Vue.js易于上手、搭建模式简便、模块化编程结构完善等特点,成了众多新一代前端框架中的佼佼者。本书包含了从基础语法、组件化编程到复杂工具使用及2.0版本更新等全面的内容,值得推荐,也希望越来越多的人开始了解使用 Vue.js。
—— 掘金gold.xitu.io技术社区创始人 阴明

在前端框架和库百家争鸣的时代,Vue.js是其中一支新秀,用独特思路来解决前端业务急需解决的问题。本书是一本丰富且全面的Vue.js书籍。强烈推荐给每一位想要或正在学习 Vue.js 的开发人员。
—— 《图解CSS 3》 作者&W3cplus站长 大漠

近年来,前端技术的发展日新月异,各种框架、工具层出不穷,呈现出百花齐放的状态。虽然在一些基本的设计思想方面各种框架不断趋同,但是每一种框架依然保持了自己的特色,希望大家通过这本书能品味出纯正的Vue味儿。
—— Google Angular中国区专职推广 大漠穷秋

Vue.js是一个轻量高效的MVVM框架,提供了响应式编程、组件化等强大的能力,配合丰富多彩的生态圈和工具链,可以让你完成非常复杂的前端应用。本书是滴滴公共前端团队多年实践经验的结晶,不仅介绍了Vue在大规模前端项目的应用,还提供了周边工具链如webpack、rollup等相关实践经验,干货满满,不仅适合初学者学习,还为企业的工程化实践提供了丰富的参考
—— *国际站前端工程师 姜天意


【目录】
目 录

第1章 遇见Vue.js 1
1.1 MVX模式是什么 1
1.1.1 MVC 1
1.1.2 MVP 2
1.1.3 MVVM 3
1.2 Vue.js是什么 4
1.2.1 Vue.js与其他框架的区别 4
1.2.2 如何使用Vue.js 10
1.2.3 Vue.js的发展历史 11
第2章 数据绑定 12
2.1 语法 12
2.1.1 插值 12
2.1.2 表达式 13
2.1.3 指令 13
2.2 分隔符 14
第3章 指令 15
3.1 内部指令 15
3.1.1 v-if 15
3.1.2 v-show 16
3.1.3 v-else 17
3.1.4 v-model 18
3.1.5 v-repeat 20
3.1.6 v-for 29
3.1.7 v-text 37
3.1.8 v-html 37
3.1.9 v-bind 38
3.1.10 v-on 39
3.1.11 v-ref 40
3.1.12 v-el 40
3.1.13 v-pre 41
3.1.14 v-cloak 41
3.2 自定义指令 41
3.2.1 基础 42
3.2.2 高级选项 46
3.3 内部指令解析 51
3.4 常见问题解析 53
第4章 计算属性 56
4.1 什么是计算属性 56
4.2 计算属性缓存 57
4.3 常见问题 59
4.3.1 计算属性getter不执行的场景 59
4.3.2 在v-repeat中使用计算属性 60
第5章 表单控件绑定 62
5.1 基本用法 62
5.1.1 text 62
5.1.2 checkbox 62
5.1.3 radio 63
5.1.4 select 63
5.2 值绑定 65
5.3 v-model修饰指令 66
5.3.1 lazy 66
5.3.2 debounce 67
5.3.3 number 67
5.4 修饰指令原理 67
5.4.1 lazy源码解析 67
5.4.2 debounce源码解析 68
5.4.3 number源码解析 69
第6章 过滤器 70
6.1 内置过滤器 71
6.1.1 字母操作 71
6.1.2 json过滤器 72
6.1.3 限制 72
6.1.4 currency过滤器 75
6.1.5 debounce过滤器 76
6.2 自定义过滤器 76
6.2.1 fillter语法 76
6.2.2 教你写一个filter 78
6.3 源码解析 79
6.3.1 管道实现 79
6.3.2 过滤器解析 80
6.4 常见问题解析 80
第7章 Class与Style绑定 82
7.1 绑定HTML Class 82
7.1.1 对象语法 82
7.1.2 数组语法 84
7.2 绑定内联样式 84
7.2.1 对象语法 84
7.2.2 数组语法 85
7.2.3 自动添加前缀 86
第8章 过渡 88
8.1 CSS过渡 89
8.1.1 内置Class类名 90
8.1.2 自定义CSS类名 91
8.1.3 显式声明CSS过渡类型 91
8.1.4 动画案例 91
8.1.5 过渡流程 92
8.2 JavaScript过渡 94
8.3 渐进过渡 95
第9章 Method 97
9.1 如何绑定事件 97
9.1.1 内联方式 97
9.1.2 methods配置 98
9.1.3 $events应用 99
9.2 如何使用修饰符 99
9.2.1 prevent 100
9.2.2 stop 100
9.2.3 capture 100
9.2.4 self 100
9.2.5 按键 101
9.3 Vue.js 0.12到1.0中的变化 101
9.3.1 v-on变更 101
9.3.2 @click缩写 102
第10章 Vue实例方法 103
10.1 实例属性 103
10.1.1 组件树访问 103
10.1.2 DOM访问 104
10.1.3 数据访问 104
10.2 实例方法 104
10.2.1 实例DOM方法的使用 104
10.2.2 实例Event方法的使用 106
第11章 组件 108
11.1 基础 109
11.1.1 注册 109
11.1.2 数据传递 111
11.1.3 混合 124
11.1.4 动态组件 127
11.2 相关拓展 130
11.2.1 组件和v-for 130
11.2.2 编写可复用组件 131
11.2.3 异步组件 131
11.2.4 资源命名约定 132
11.2.5 内联模板 133
11.2.6 片段实例 134
11.3 生命周期 135
11.4 开发组件 137
11.4.1 基础组件 137
11.4.2 基于第三方组件开发 142
11.5 常见问题解析 147
第12章 表单校验 154
12.1 安装 154
12.2 基本使用 155
12.3 验证结果结构 156
12.4 验证器语法 158
12.4.1 校验字段名field 158
12.4.2 校验规则定义 160
12.5 内置验证规则 163
12.5.1 required 163
12.5.2 pattern 165
12.5.3 minlength 165
12.5.4 maxlength 166
12.5.5 min 167
12.5.6 max 167
12.6 与v-model同时使用 168
12.7 重置校验结果 169
12.8 表单元素 169
12.9 各校验状态对应的class 172
12.9.1 自定义校验状态class 173
12.9.2 在其他元素上使用校验状态class 173
12.10 分组校验 174
12.11 错误信息 174
12.11.1 错误信息输出组件 177
12.11.2 动态设置错误信息 180
12.12 事件 182
12.12.1 单个字段校验事件 182
12.12.2 整个表单校验事件 183
12.13 延迟初始化 185
12.14 自定义验证器 186
12.14.1 注册自定义验证器 187
12.14.2 错误信息 188
12.15 自定义验证时机 189
12.16 异步验证 192
12.16.1 注册异步验证器 192
12.16.2 验证器函数context 194
第13章 与服务端通信 196
13.1 vue-resource安装及配置 197
13.1.1 安装 197
13.1.2 参数配置 198
13.1.3 headers配置 199
13.1.4 基本HTTP调用 200
13.1.5 请求选项对象 202
13.1.6 response对象 205
13.1.7 RESTful调用 205
13.1.8 拦截器 207
13.1.9 跨域AJAX 208
13.1.10 Promise 210
13.1.11 url模板 211
13.2 vue-async-data 212
13.2.1 安装 212
13.2.2 使用 212
13.3 常见问题解析 213
13.3.1 如何发送JSONP请求 213
13.3.2 如何修改发送给服务端的数据类型 215
13.3.3 跨域请求出错 215
13.3.4 $.http.post方法变为OPTIONS方法 216
第14章 路由与视图 217
14.1 如何安装 217
14.2 基本使用 218
14.3 视图部分 219
14.3.1 v-link 219
14.3.2 router-view 222
14.4 路由实例 222
14.5 组件路由配置 227
14.5.1 路由切换的各个阶段 227
14.5.2 各阶段的钩子函数介绍 230
14.6 路由匹配 236
14.6.1 动态片段 236
14.6.2 全匹配片段 237
14.6.3 具名路径 237
14.6.4 路由对象 238
14.7 transition对象 239
14.8 嵌套路由 239
14.9 动态加载路由组件 241
14.10 实战 242
14.10.1 浏览器直接引用 242
14.10.2 Webpack模块化开发 244
14.11 常见问题解析 250
第15章 vue-cli 254
15.1 安装 254
15.2 基本使用 254
15.3 命令 257
15.3.1 init 257
15.3.2 list 257
15.4 模板 258
15.4.1 官方模板 258
15.4.2 自定义模板 258
15.4.3 本地模板 259
15.5 不错的工具包 259
15.5.1 commander 259
15.5.2 download-git-repo 259
15.5.3 inquirer 259
15.5.4 ora 260
第16章 测试开发与调试 261
16.1 测试工具 261
16.1.1 ESLint 261
16.1.2 工具包 263
16.2 开发工具 264
16.2.1 Vue Syntax Highlight 264
16.2.2 Snippets 264
16.2.3 其他编辑器/IDE 265
16.3 调试工具 269
第17章 Scrat Vue.js的化学反应 271
17.1 浅谈前端工程化 271
17.2 前端工程化怎么做 271
17.3 Scrat简介 273
17.4 Scrat Vue.js实现组件 275
17.5 案例分析 276
17.5.1 准备工作 277
17.5.2 代码实现 279
17.5.3 编译和发布 284
17.6 总结 287
第18章 Vue.js 2.0 288
18.1 API变更 288
18.1.1 全局配置 288
18.1.2 全局API 289
18.1.3 VM选项 290
18.1.4 实例属性 294
18.1.5 实例方法 294
18.1.6 指令 296
18.1.7 特殊元素 297
18.1.8 服务端渲染 297
18.2 Virtual DOM 297
18.2.1 认识Virtual DOM 297
18.2.2 Virtual DOM在Vue.js 2.0中的实现 299
18.3 服务端渲染技术 315
18.3.1 普通服务端渲染 315
18.3.2 流式服务端渲染 320
18.4 总结 326
第19章 源码篇——util 327
19.1 env 327
19.1.1 系统判断 328
19.1.2 属性支持 328
19.1.3 过渡属性 329
19.1.4 nextTick 330
19.1.5 set 332
19.2 dom 332
19.2.1 dom操作 333
19.2.2 属性操作 339
19.2.3 class操作 341
19.2.4 事件操作 343
19.2.5 其他 344
19.3 lang 347
19.3.1 对象操作 347
19.3.2 名称转换 351
19.3.3 数组操作 352
19.3.4 类型转换 352
19.3.5 方法绑定 354
19.3.6 其他 354
19.4 components 357
19.5 options 359
19.6 debug 364
第20章 源码篇——深入响应式原理 365
20.1 如何追踪变化 365
20.1.1 Observer 367
20.1.2 Directive 372
20.1.3 Watcher 382
20.2 变化检测问题 391
20.3 初始化数据 394
20.4 异步更新队列 395
20.5 计算属性的奥秘 398
20.6 总结 402
第21章 源码篇——父子类合并策略 403
21.1 策略是什么 403
21.1.1 生命周期合并策略 403
21.1.2 属性方法计算 405
21.1.3 数据合并策略 406
第22章 源码篇——缓存 409
22.1 Cache有什么用 409
22.2 LRU 410
22.3 Cache类 410
22.4 put 410
22.5 shift 411
22.6 get 412
第23章 源码篇——属性props 413
23.1 流程设计 413
23.2 属性name 415
23.3 coerce 416
23.4 type 验证 416
23.5 default 417
23.6 validator 418
第24章 源码篇——events 419
24.1 events配置是什么 419
24.2 如何配置 419
24.2.1 $emit触发 422
24.2.2 $once 绑定 424
24.2.3 $off删除 425
24.2.4 $dispatch派发 426
24.2.5 $broadcast广播 427
第25章 Webpack 428
25.1 安装 428
25.2 基本使用 429
25.3 命令行 430
25.4 配置文件 430
25.4.1 context 431
25.4.2 entry 431
25.4.3 outpu
【前言】

推荐序

三年前刚开始写Vue.js的个原型的时候,我并没有奢望太多。而今天在我打下这行字的时候,Vue.js在GitHub上已经有超过两万五千颗star,在npm上有超过一百万次的下载,并在全球各地拥有十几万的用户。同时,得益于社区的大力支持,我有幸全职投入Vue.js的开发,以开源作为我的全职工作。
在设计思想上,Vue.js尤为注重上手的学习曲线,这也是Vue.js吸引很多用户的一个重要原因。但随着近年来产品对前端的需求不断提高,前端工程的复杂度也在不断提升。因此,初学者免不了在实际的生产应用中遇到各种文档中难以覆盖的细节问题。
在国内,Vue.js被大量行业领先的科技公司在生产中广泛使用,这其中就包括本书作者小春所就职的滴滴出行。本书包含了大量在实践中总结出的Vue.js使用经验,并且能看出作者对Vue.js的内部实现做了深入的研究,相信能为国内学习Vue.js的开发者们提供有价值的帮助。Vue.js的迅速成长,在很大程度上得益于社区用户与他人分享经验心得的热心。在这里,我也对小春和滴滴公共前端团队为本书付出的心血表示衷心的感谢。

尤雨溪
Vue.js作者

前 言

本书是一本全方位讲解Vue.js,从入门到精通的权威指南。
从本书中你将学到:
? Vue.js基本语法
? Vue.js源码解析
? 如何开发一个完整的组件
? 如何集成第三方组件
? 如果构建和调试一个Vue的项目
? 主流打包构建工具的使用
? Vue.js 2.0
? Scrat与Vue.js结合
本书读者对象
本书写给从未使用Vue.js开发项目或想深入了解Vue.js原理的读者,同时也适合热衷于追求新技术、探索新工具的读者。特此声明:本书基础语法讲解基于Vue.js 1.0版本,其中涵盖了与其他版本的比较。我们假设读者已经掌握了HTML和CSS,并且熟悉JavaScript基础知识。
如何阅读本书
如果你从事Web开发工作,之前没有接触过Vue.js,建议从第1章开始仔细阅读,并亲手实践每个章节提供的示例,可以加深理解;如果你已经使用Vue.js开发项目,则可以跳过前面基础知识,直接进入源码解析篇,让我们共同探索Vue.js是如何实现的,以及有哪些值得借鉴学习的知识;如果你想看看Vue.js 2.0都发生了什么转变,请直接进入Vue.js 2.0章节阅读;如果你想了解打包构建工具如何使用,请直接进入工具篇,那里有三款打包工具供选择。希望你阅读愉快。
本书结构
每个章节的开头都会介绍一个概念,帮你了解该章节所讲内容是什么,以便快速了解或准确地找到所关注的内容。
在基础知识讲解中,每一节中都会有大量丰富、详尽的示例,方便你更全面地掌握所讲解的知识。
在章节后还会附加一些常见问题,帮助你快速解决问题并定位问题所在。


【书摘与插画】

返回顶部