AngularJS深度剖析与最佳实践

出版日期:2016-1-1
ISBN:9787111520963
作者:雪狼,破狼,彭洪伟
页数:318页

内容概要

雪狼,本名汪志成。ThoughtWorks资深前端架构师,Coral Solution产品经理。热爱技术,热衷编程,17年来从未中断。涉足的软件开发领域从桌面软件到Web应用,涵盖翻译软件、通讯软件、安全软件、企业级系统等。他是AngularJS中文社区管理员,在群里分享了大量技术知识,受到网友的好评与称赞。
破狼: ThoughtWorks一线码农,高级架构师、咨询师;爱好读书、旅游,也常涂鸦一些技术博文;国内Angular最早布道者之一,ngnice、ngShowCase创建人之一。Angular中文社区“狼主”;全栈攻城狮;个人独立博客:http://greengerong.com/,同时也运维了一个前端微信公众号[shuang_lang_shuo](破狼)。
彭洪伟:ThoughWorks 一线码农,Angular 早期使用者,ngnice 的早期贡献者之一。除了前端技术,对 Java, Scala, Ruby 等也均有涉猎,并且翻译了构建工具 SBT 的文档。

书籍目录


前 言
第1章 从实战开始1
1.1 环境准备1
1.2 需求分析与迭代计划3
1.3 创建项目11
1.3.1 Yeoman11
1.3.2 FrontJet13
1.4 实现第一个页面:注册18
1.4.1 约定优于配置18
1.4.2 定义路由19
1.4.3 把后端程序跑起来24
1.4.4 连接后端程序26
1.4.5 添加验证器28
1.4.6 “错误信息提示”指令31
1.4.7 用过滤器生成用户友好的提示
信息33
1.4.8 实现自定义验证规则34
1.4.9 实现图形验证码36
1.5 实现更多功能:主题38
1.5.1 实现主题列表38
1.5.2 实现过滤功能40
1.5.3 实现分页功能42
1.5.4 实现主题树44
1.5.5 实现递归主题树56
1.5.6 实现“查看详情”功能58
1.6 实现AOP功能59
1.6.1 实现登录功能60
1.6.2 实现对话框65
1.6.3 实现错误处理功能67
1.7 实战小结68
第2章 概念介绍70
2.1 什么是UI70
2.2 模块71
2.3 作用域72
2.4 控制器73
2.5 视图74
2.6 指令75
2.6.1 组件型指令76
2.6.2 装饰器型指令79
2.7 过滤器81
2.8 路由82
2.9 服务83
2.9.1 服务85
2.9.2 工厂86
2.10 承诺88
2.11 消息92
2.12 单元测试93
2.12.1 MOCK的使用方式94
2.12.2 测试工具与断言库95
2.13 端到端测试96
第3章 背后的原理98
3.1 Angular中的MVVM模式98
3.2 Angular启动过程102
3.3 依赖注入106
3.3.1 什么是依赖注入106
3.3.2 如何在JavaScript中实现DI107
3.3.3 Angular中的DI108
3.3.4 DI与minify109
3.4 脏检查机制110
3.4.1 浏览器事件循环和Angular的MVW110
3.4.2 Angular中的$watch函数111
3.4.3 Angular中的$digest函数113
3.4.4 Angular中的$apply116
3.5 指令的生命周期117
3.5.1 Injecting118
3.5.2 compile和link过程120
3.6 Angular中的$parse、$eval和$observe、$watch122
3.6.1 $parse和$eval122
3.6.2 $observe和$watch124
3.6.3 使用场景125
3.7 REST127
3.7.1 REST的六大要点128
3.7.2 REST的四个级别130
3.8 跨域131
3.8.1 同源策略与跨域131
3.8.2 如何解决跨域问题132
3.9 前端安全技术133
3.9.1 前端攻击的基本原理和类型133
3.9.2 前端安全与前后端分工136
3.9.3 移动时代的特殊挑战137
3.9.4 安全无止境138
第4章 最佳实践140
4.1 调整开发协作流程140
4.2 前后端分离部署143
4.3 样式中心页144
4.4 CSS的扩展语言与架构145
4.5 HTML的表意性146
4.6 table,天使还是魔鬼148
4.7 测试什么?怎么测?150
4.7.1 准备工作150
4.7.2 如何测试Controller151
4.7.3 如何测试Service151
4.7.4 如何测试Filter152
4.7.5 如何测试组件型指令152
4.7.6 如何测试装饰器型指令153
4.7.7 如何测试网络请求153
4.7.8 如何测试setTimeout类功能153
4.7.9 如何Mock Service154
4.8 如何设计友好的REST API155
4.8.1 URI155
4.8.2 资源拆分155
4.8.3 资源命名155
4.8.4 方法156
4.8.5 返回值157
4.8.6 综合案例:分页API159
4.9 使用controller as vm方式160
4.9.1 源码分析161
4.9.2 推荐用法和优势161
4.9.3 路由中的controller as语法162
4.9.4 指令中的controller as语法163
4.10 移除不必要的$watch163
4.10.1 双向绑定和watchers函数164
4.10.2 其他指令中的watchers函数166
4.10.3 慎用$watch和及时销毁167
4.10.4 one-time绑定168
4.10.5 滚屏加载170
4.10.6 其他171
4.11 总是用ng-model作为输出172
4.12 用打包代替动态加载173
4.13 引入Angular-hint173
4.13.1 通过batarang插件使用angular-hint174
4.13.2 手动集成angular-hint174
4.13.3 Module hints175
4.13.4 Controller hints176
4.13.5 Directive hints176
第5章 Angular开发技巧178
5.1 $timeout的妙用178
5.2 ngTemplate寄宿方式182
5.3 在非独立作用域指令中实现scope绑定185
5.4 表单验证错误信息显示186
5.5 Angular中的AOP机制187
5.5.1 拦截器案例188
5.5.2 拦截器源码分析192
5.5.3 Angular中的装饰器195
5.5.4 Angular装饰器源码分析197
5.6 Ajax请求和响应数据的转换198
5.6.1 兼容老式API198
5.6.2 Ajax请求配置的源码分析201
5.7 在代码中注入Filter205
5.7.1 复用指定Filter205
5.7.2 重用多个Filter案例206
5.7.3 Filter源码分析207
5.8 防止Angular表达式闪烁208
5.8.1 表达式闪烁解决方案208
5.8.2 ngCloak源码分析208
5.8.3 最佳实践209
5.9 实现前端权限控制209
5.9.1 事件方案210
5.9.2 resolve方案211
5.10 依赖注入—$injector214
5.10.1 $injector的创建214
5.10.2 $injector注入方式215
5.10.3 $injector的妙用217
5.11 在指令中让使用者自定义模板219
5.12 跨多个节点的ng-if或ng-repeat223
5.13 阻止事件冒泡和浏览器默认行为224
5.14 动态绑定HTML226
第6章 Angular常见的“坑”229
6.1 module函数的声明和获取重载229
6.2 ngModel绑定值不更改232
6.2.1 验证引起的model值不显示233
6.2.2 原型链继承问题235
6.3 指令不生效239
6.4 Angular中锚点的使用240
6.5 ngRepeat验证失效241
6.5.1 简单的验证显示242
6.5.2 复杂的验证显示242
6.6 有些指令需要唯一的根节点243
6.7 指令优先级-Priority243
6.8 ngRepeat报重复内容错误244
6.9 单元测试中promise不触发245
第7章 编码规范247
7.1 目录结构248
7.1.1 按照类型优先、业务功能其次的组织方式248
7.1.2 按照业务功能优先、类型其次的组织方式249
7.2 模块组织250
7.2.1 命名250
7.2.2 Module声明250
7.2.3 依赖声明251
7.2.4 Module组件声明251
7.3 控制器252
7.3.1 命名252
7.3.2 ControllerAs vm声明252
7.3.3 初始化数据253
7.3.4 DOM操作253
7.3.5 依赖的声明253
7.3.6 精简控制器逻辑254
7.3.7 禁止用$rootScope传递数据255
7.3.8 格式化显示逻辑255
7.3.9 Resolve255
7.4 服务256
7.4.1 命名256
7.4.2 代码复用256
7.4.3 使用场景256
7.4.4 Service返回值257
7.4.5 缓存不变数据257
7.4.6 RESTful257
7.5 过滤器258
7.5.1 命名258
7.5.2 重用已有Filter258
7.5.3 禁止复杂的Filter258
7.6 指令259
7.6.1 命名259
7.6.2 Template声明259
7.6.3 link函数的scope参数命名259
7.6.4 pre-link和post-link260
7.6.5 DOM操作260
7.6.6 Directive分类260
7.6.7 Directive不是封装jQuery代码“天堂”260
7.6.8 自动回收261
7.7 模板261
7.7.1 表达式绑定261
7.7.2 Src、Href问题261
7.7.3 Class优于Style262
7.8 工具262
7.9 其他264
7.9.1 内置$服务替代原生服务264
7.9.2 Promise解决回调地狱264
7.9.3 减少$watch265
7.9.4 TDD265
第8章 工具267
8.1 WebStorm与IntelliJ267
8.2 Chrome269
8.3 Gulp273
8.4 Swagger274
8.4.1 前后端分离274
8.4.2 Swagger275
8.4.3 契约测试277
8.5 TSD277
8.6 Postman280
8.6.1 安装280
8.6.2 功能介绍280
第9章 杂项知识282
9.1 Angular 2.0282
9.2 SEO284
9.3 IE兼容性287
9.3.1 问题概述287
9.3.2 问题分类288
9.4 访问统计292
9.5 响应式布局293
9.6 国际化294
9.7 动画296
9.7.1 CSS动画296
9.7.2 JavaScript动画297
9.8 手机版开发298
9.8.1 Hybrid应用298
9.8.2 Ionic300
附录A 相关资源301
后记 提问的智慧318

作者简介

本书系统讲解AngularJS的基本概念与背后的原理,包括完整的开发框架与最佳实践。不仅抽丝剥茧地展现了AngularJS的诸多特性与技巧,还讲解了工程实践中容易陷入的“坑”,是从AngularJS的小工走向专家的必备参考。本书首先从实战开始,通过实战演练逐步带领读者体验Angular的开发过程,并随着进度的推进,引入所需的技术和概念。然后专门介绍基本概念,对于在实战中提到的一些概念进行深入讲解:是什么,为什么,怎么用,什么时候用,什么时候不用等。接下来讲解这些概念背后的原理,看看这些概念之间是如何协作的,包括AngularJS的工作模式等。最后介绍最佳实践,将主要介绍实战经验,包括如何把一些不常用但很有用的API发掘出来,如何把看起来平淡无奇的框架特性运用得出神入化等。此外,作者还从实际工作中总结了一些开发技巧和容易陷入的“坑”,以及觉得对自己帮助最大的工具及其使用经验,这对于实际开发非常有参考价值。


 AngularJS深度剖析与最佳实践下载



发布书评

 
 


精彩短评 (总计13条)

  •     国内目前已知的AngularJS最好的一本进阶书,相比于其他书过于基础的讲概念和语法,这本书的深入度和实战性上明显高上了不止一个台阶。
  •     给力,大概先看完了
  •     不错的ng进阶书籍。加深对ng背后原理的理解。
  •     不得不说这本书写得好到哭,特别是 AngularJS 「服务」这一部分的解释简直太棒了,胜过我看过所有的中文英文资料。
  •     16年一月份才出来的,内容比较新,已经读过,公司新员工和朋友也是非常建议长读此书
  •     2016.22 国人写的ng的书,很不错,对ng进阶的可以看看 了解ng背后的原理 在深入就只能啃源码了
  •     语言就像,我的工具包,如何衡量时间,用工具包。
  •     花了几天看完,对angular的概念讲解的非常的清楚和全面,是一本很好的angular书籍,就目前中文教材来说是最好的应该也是可以了。对于任何想进阶或者自学一段时间依然对概念不熟悉的,都应该买来看看。
  •     这本书比较深入,应该是在了解了AngularJS基础之后才能看的。作者应该是真正使用AngularJS的,里面很多的知识点都有提到。这本书绝不是新手可以看得,里面很多东西比较杂乱,新手很吃力。
  •     国内少有的好书,讲解的很透测,从中学习到不少的知识!
  •     ng1.x不错的参考书籍,很多干货
  •     有点深奥有点看不懂,赶紧买回来珍藏研读
  •     p13 frontjet 很难安装成功,折腾了一晚上。 p24后端程序无法运行,需要一系列运行环境。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024