AngularJS深度剖析与最佳实践

AngularJS深度剖析与最佳实践

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

AngularJS的基本概念及其背后的原理,包括完整的开发框架与最佳实践。

内容简介

本书不仅抽丝剥茧地展现了AngularJS的诸多特性与技巧,还讲解了工程实践中容易陷入的“坑”,是从小工走向专家的必备参考。本书首先从实战开始,通过实战演练逐步带领读者体验Angular的开发过程,并随着进度的推进,引入所需的技术和概念。然后对于在实战中提到的一些概念进行深入讲解:包括这些概念怎么用,什么时候用,什么时候不用等。接下来讲解这些概念背后的原理,看看这些概念之间是如何协作的,包括AngularJS的工作模式等。最后

作者简介

作者雪狼,资深前端架构师,热爱技术,热衷编程,16年来从未中断。涉足的软件开发领域从桌面软件到Web应用,涵盖翻译软件、通讯软件、安全软件、企业级系统等。他还是AngularJS中文社区管理员,在社区分享了大量技术文章,受到读者的好评与称赞。

章节目录

版权信息

前言

第1章 从实战开始

1.1 环境准备

1.Node

2.cnpm

3.Java

4.IntelliJ

5.IntelliJ的AngularJS插件

6.Git

7.cygwin

8.开发指南与API

1.2 需求分析与迭代计划

1.系统隐喻

2.业务目标

3.需求分析

4.定义导航图

5.第一个迭代

1.3 创建项目

1.3.1 Yeoman

1.3.2 FrontJet

1.使用FrontJet创建项目

2.启动开发服务器

3.项目结构

1.4 实现第一个页面:注册

1.4.1 约定优于配置

1.4.2 定义路由

1.4.3 把后端程序跑起来

1.4.4 连接后端程序

1.4.5 添加验证器

1.4.6 “错误信息提示”指令

1.4.7 用过滤器生成用户友好的提示信息

1.4.8 实现自定义验证规则

1.4.9 实现图形验证码

1.5 实现更多功能:主题

1.5.1 实现主题列表

1.5.2 实现过滤功能

1.5.3 实现分页功能

1.5.4 实现主题树

1.5.5 实现递归主题树

1.5.6 实现“查看详情”功能

1.6 实现AOP功能

1.6.1 实现登录功能

1.6.2 实现对话框

1.6.3 实现错误处理功能

1.7 实战小结

第2章 概念介绍

2.1 什么是UI

2.2 模块

2.3 作用域

2.4 控制器

2.5 视图

2.6 指令

2.6.1 组件型指令

2.6.2 装饰器型指令

2.7 过滤器

2.8 路由

2.9 服务

2.9.1 服务

2.9.2 工厂

2.10 承诺

1.生活中的一个例子

2.回调地狱和Promise

3.Angular中的Promise

2.11 消息

2.12 单元测试

2.12.1 MOCK的使用方式

2.12.2 测试工具与断言库

2.13 端到端测试

第3章 背后的原理

3.1 Angular中的MVVM模式

1.绝不要先设计你的页面,然后用DOM操作去改变它

2.指令不是封装jQuery代码的“天堂”

3.2 Angular启动过程

1.浏览器下载HTML/CSS/JavaScript等

2.浏览器开始构建DOM树

3.jQuery初始化

4.Angular初始化

5.jQuery启动

6.Angular启动

7.加载子模块

8.启动子模块

9.渲染页面

10.数据绑定与摘要循环

3.3 依赖注入

3.3.1 什么是依赖注入

3.3.2 如何在JavaScript中实现DI

3.3.3 Angular中的DI

3.3.4 DI与minify

3.4 脏检查机制

3.4.1 浏览器事件循环和Angular的MVW

3.4.2 Angular中的$watch函数

3.4.3 Angular中的$digest函数

3.4.4 Angular中的$apply

3.5 指令的生命周期

3.5.1 Injecting

3.5.2 compile和link过程

3.6 Angular中的$parse、$eval和$observe、$watch

3.6.1 $parse和$eval

3.6.2 $observe和$watch

3.6.3 使用场景

3.7 REST

3.7.1 REST的六大要点

1.统一的接口形式(Uniform Interface)

2.无状态化(Stateless)

3.可缓存(Cacheable)

4.前后端分离(Frontend and Backend Seperation)

5.分层系统(Layered System)

6.按需编码-可选(Code on Demand(optional))

3.7.2 REST的四个级别

3.8 跨域

3.8.1 同源策略与跨域

3.8.2 如何解决跨域问题

1.JSONP方式

2.反向代理方式

3.CORS方式

3.9 前端安全技术

3.9.1 前端攻击的基本原理和类型

1.跨站脚本——XSS

2.跨站请求伪造——CSRF/XSRF

3.9.2 前端安全与前后端分工

3.9.3 移动时代的特殊挑战

3.9.4 安全无止境

第4章 最佳实践

4.1 调整开发协作流程

4.2 前后端分离部署

4.3 样式中心页

4.4 CSS的扩展语言与架构

4.5 HTML的表意性

4.6 table,天使还是魔鬼

4.7 测试什么?怎么测?

4.7.1 准备工作

4.7.2 如何测试Controller

4.7.3 如何测试Service

4.7.4 如何测试Filter

4.7.5 如何测试组件型指令

4.7.6 如何测试装饰器型指令

4.7.7 如何测试网络请求

4.7.8 如何测试setTimeout类功能

4.7.9 如何Mock Service

4.8 如何设计友好的REST API

4.8.1 URI

4.8.2 资源拆分

4.8.3 资源命名

4.8.4 方法

1.安全性

2.幂等性

4.8.5 返回值

4.8.6 综合案例:分页API

4.9 使用controller as vm方式

4.9.1 源码分析

4.9.2 推荐用法和优势

4.9.3 路由中的controller as语法

4.9.4 指令中的controller as语法

4.10 移除不必要的$watch

4.10.1 双向绑定和watchers函数

4.10.2 其他指令中的watchers函数

4.10.3 慎用$watch和及时销毁

4.10.4 one-time绑定

4.10.5 滚屏加载

4.10.6 其他

4.11 总是用ng-model作为输出

4.12 用打包代替动态加载

4.13 引入Angular-hint

4.13.1 通过batarang插件使用angular-hint

4.13.2 手动集成angular-hint

4.13.3 Module hints

4.13.4 Controller hints

4.13.5 Directive hints

第5章 Angular开发技巧

5.1 $timeout的妙用

5.2 ngTemplate寄宿方式

5.3 在非独立作用域指令中实现scope绑定

5.4 表单验证错误信息显示

5.5 Angular中的AOP机制

5.5.1 拦截器案例

5.5.2 拦截器源码分析

5.5.3 Angular中的装饰器

5.5.4 Angular装饰器源码分析

5.6 Ajax请求和响应数据的转换

5.6.1 兼容老式API

1.部分Ajax调用的request设置

2.全局Ajax调用的请求配置

5.6.2 Ajax请求配置的源码分析

5.7 在代码中注入Filter

5.7.1 复用指定Filter

5.7.2 重用多个Filter案例

5.7.3 Filter源码分析

5.8 防止Angular表达式闪烁

5.8.1 表达式闪烁解决方案

5.8.2 ngCloak源码分析

5.8.3 最佳实践

5.9 实现前端权限控制

5.9.1 事件方案

5.9.2 resolve方案

5.10 依赖注入——$injector

5.10.1 $injector的创建

5.10.2 $injector注入方式

5.10.3 $injector的妙用

5.11 在指令中让使用者自定义模板

5.12 跨多个节点的ng-if或ng-repeat

5.13 阻止事件冒泡和浏览器默认行为

5.14 动态绑定HTML

第6章 Angular常见的“坑”

6.1 module函数的声明和获取重载

6.2 ngModel绑定值不更改

6.2.1 验证引起的model值不显示

6.2.2 原型链继承问题

6.3 指令不生效

6.4 Angular中锚点的使用

6.5 ngRepeat验证失效

6.5.1 简单的验证显示

6.5.2 复杂的验证显示

6.6 有些指令需要唯一的根节点

6.7 指令优先级-Priority

6.8 ngRepeat报重复内容错误

6.9 单元测试中promise不触发

第7章 编码规范

7.1 目录结构

7.1.1 按照类型优先、业务功能其次的组织方式

7.1.2 按照业务功能优先、类型其次的组织方式

7.2 模块组织

7.2.1 命名

7.2.2 Module声明

7.2.3 依赖声明

7.2.4 Module组件声明

7.3 控制器

7.3.1 命名

7.3.2 ControllerAs vm声明

7.3.3 初始化数据

7.3.4 DOM操作

7.3.5 依赖的声明

7.3.6 精简控制器逻辑

7.3.7 禁止用$rootScope传递数据

7.3.8 格式化显示逻辑

7.3.9 Resolve

7.4 服务

7.4.1 命名

7.4.2 代码复用

7.4.3 使用场景

7.4.4 Service返回值

7.4.5 缓存不变数据

7.4.6 RESTful

7.5 过滤器

7.5.1 命名

7.5.2 重用已有Filter

7.5.3 禁止复杂的Filter

7.6 指令

7.6.1 命名

7.6.2 Template声明

7.6.3 link函数的scope参数命名

7.6.4 pre-link和post-link

7.6.5 DOM操作

7.6.6 Directive分类

7.6.7 Directive不是封装jQuery代码“天堂”

7.6.8 自动回收

7.7 模板

7.7.1 表达式绑定

7.7.2 Src、Href问题

7.7.3 Class优于Style

7.8 工具

7.9 其他

7.9.1 内置$服务替代原生服务

7.9.2 Promise解决回调地狱

7.9.3 减少$watch

7.9.4 TDD

第8章 工具

8.1 WebStorm与IntelliJ

1.AngularJS

2.Ionic Framework

3.Emmet

8.2 Chrome

1.快速切换文件

2.在源代码中搜索

3.通过Workspaces来编辑本地文件

4.选择下一个匹配项

5.Batarang插件

6.查看Model

7.查看Performance

8.查看AngularJS properties

9.在Chrome中查看作用域

8.3 Gulp

8.4 Swagger

8.4.1 前后端分离

8.4.2 Swagger

8.4.3 契约测试

8.5 TSD

8.6 Postman

8.6.1 安装

8.6.2 功能介绍

第9章 杂项知识

9.1 Angular 2.0

1.ECMAScript6简介

2.TypeScript简介

9.2 SEO

9.3 IE兼容性

9.3.1 问题概述

9.3.2 问题分类

1.HTML/DOM解析

2.JavaScript

3.CSS

4.实践总结

9.4 访问统计

9.5 响应式布局

9.6 国际化

9.7 动画

9.7.1 CSS动画

9.7.2 JavaScript动画

9.8 手机版开发

9.8.1 Hybrid应用

9.8.2 Ionic

附录A 相关资源

1.双狼说微信号

2.QQ群

3.NgNice网站http://ngnice.com/

4.随书源码及勘误

1.块元素水平居中

2.元素垂直居中

3.超长内容自动显示省略号

4.用:not代替层叠规则做特例处理

1.恰当命名

2.避免特例处理

3.避免使用style属性

4.避免强制指定元素的宽度、高度

1.非块元素不允许包含块元素

2.指定width:100%后父元素出现滚动条

后记 提问的智慧

AngularJS深度剖析与最佳实践是2015年由机械工业出版社华章分社出版,作者雪狼。

得书感谢您对《AngularJS深度剖析与最佳实践》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
深度学习算法与实践 电子书
本书旨在为读者建立完整的深度学习知识体系。全书内容包含3个部分,第一部分为与深度学习相关的数学基础;第二部分为深度学习的算法基础以及相关实现;第三部分为深度学习的实际应用。
深度学习——原理、模型与实践 电子书
本书是深度学习领域的入门教材,全面阐述了深度学习的知识体系,涵盖人工智能的基础知识以及深度学习的基本原理、模型、方法和实践案例,使读者掌握深度学习的相关知识,提高以深度学习方法解决实际问题的能力。全书内容包括人工智能基础、机器学习基础、深度学习主要框架、深度神经网络、卷积神经网络、循环神经网络、自编码器与生成对抗网络。
深度学习原理与 TensorFlow实践 电子书
本书介绍了深度学习原理与TensorFlow实践。着重讲述了当前学术界和工业界的深度学习核心知识:机器学习概论、神经网络、深度学习。着重讲述了深度学习的实现以及深度学习框架TensorFlow:Python编程基础、TensorFlow编程基础、TensorFlow模型、TensorFlow编程实践、TensorFlowLite和TensorFlow.js、TensorFlow案例--医学应用和S
深度学习入门与TensorFlow实践 电子书
基于TensorFlow2,系统讲述如何搭建、训练和应用深度学习模型。
注册制企业IPO实战指南:IPO全流程与案例深度剖析 电子书
企业改制上市全攻略:引导拟上市企业熟悉注册制流程和条件,提供实用上市辅导。