同构Jav aSc ript应用开发_前端开发教程
资源名称:同构Jav aSc ript应用开发
作者简介:
作者:[美]杰森·史特林贝尔(Jason Strimpel)、马克西姆·纳吉姆(Maxime Najim) 译者:张俊达
Jason Strimpel,软件工程师,拥有十余年Web开发经验。目前任职于沃尔玛实验室,负责支持UI应用的软件开发。
Maxime Najim,沃尔玛实验室软件架构师,全栈Web开发者。曾任职于Netflix、苹果和Yahoo!等公司,在创建大型、伸缩性强、可靠的Web应用方面具有丰富经验。
资源目录:
前言 ix
第一部分 简介与关键概念
第1章 为什么需要同构Javascript 2
1.1 定义同构Javascript 3
1.2 评价其他的Web应用架构方案 3
1.2.1 状况的改变 3
1.2.2 工程上的关注点 4
1.2.3 可选架构 4
1.3 附加说明:何时不使用同构 10
1.4 小结 11
第2章 同构Javascript图谱 12
2.1 共享视图 13
2.1.1 共享模板 14
2.1.2 共享视图逻辑 14
2.2 共享路由 14
2.3 共享模型 15
2.4 小结 15
第3章 同构Javascript分类 16
3.1 与环境无关的代码 18
3.2 为每个特定环境提供shim 19
3.3 小结 20
第4章 超越服务器端的渲染 21
4.1 实时Web应用 22
4.1.1 同构API 23
4.1.2 双向数据同步 23
4.1.3 在服务器端进行客户端仿真 23
4.2 小结 24
第二部分 构建第一个应用
第5章 起步 26
5.1 Node的安装和运行 27
5.1.1 从源码安装 27
5.1.2 与Node REPL交互 28
5.1.3 使用npm 管理项目 28
5.2 建立应用项目 29
5.2.1 初始化项目 29
5.2.2 安装应用服务器 31
5.2.3 编写下一代的Javascript(ES6) 32
5.2.4 将ES6编译为ES5 34
5.2.5 建立开发流程 35
5.3 小结 39
第6 章 提供第一份HTML文档 40
6.1 提供HTML模板 40
6.2 使用路径参数与查询参数 42
6.3 小结 45
第7章 设计应用架构 46
7.1 理解问题 47
7.2 响应用户请求 47
7.2.1 创建Application类 47
7.2.2 创建控制器 49
7.2.3 构造控制器实例 50
7.2.4 拓展控制器 52
7.2.5 改进响应流 53
7.3 小结 57
第8章 将应用传输到客户端 58
8.1 打包应用的客户端版本 58
8.1.1 选择打包库 58
8.1.2 创建打包任务 59
8.1.3 添加客户端实现 61
8.2 响应用户请求 62
8.2.1 利用History API 63
8.2.2 响应并调用History API 63
8.3 客户端路由 67
8.4 组织代码 73
8.5 小结 75
第9章 创建常用的抽象 76
9.1 何时抽象,为什么需要抽象 76
9.2 获取和设置cookie 77
9.3 重定向请求 84
9.4 小结 88
第10章 序列化、反序列化和添加事件监听 89
10.1 序列化数据 90
10.2 创建控制器实例 92
10.3 反序列化数据 93
10.4 添加DOM事件处理器 94
10.5 验证rehydration过程 96
10.6 小结 98
第11章 结束感言 99
11.1 生产准备 99
11.2 衡量架构 99
11.3 小结 102
第三部分 现实世界的解决方案
第12章 沃尔玛实验室的同构React.js方案 104
12.1 物种起源 104
12.1.1 问题 105
12.1.2 解决方案 106
12.2 React模板与模式 106
12.2.1 在服务器端渲染 106
12.2.2 在客户端恢复 110
12.3 沃尔玛采用的方法 112
12.4 克服挑战 112
12.4.1 首字节时间 112
12.4.2 组件渲染优化 113
12.4.3 性能提升 117
12.5 下一步 119
12.6 感谢 120
12.7 补充说明 120
第13章 全栈Angular 121
13.1 同构Javascript:Web应用的未来 122
13.2 同构Angular 1 122
13.3 Angular 2服务器端渲染 124
13.3.1 服务器端渲染的用例 124
13.3.2 Web 应用脱节 126
13.3.3 Angular 2渲染架构 127
13.3.4 Preboot 128
13.4 Angular Universal 128
13.5 GetHuman.com 130
13.6 补充说明 131
第14章 Brisket 132
14.1 问题 132
14.2 两全其美 134
14.3 早期Brisket 135
14.4 成为现实 136
14.5 代码自由 136
14.6 跨环境一致的API 139
14.6.1 模型/ 集合 140
14.6.2 视图生命周期 140
14.6.3 子视图管理 141
14.6.4 跨环境使用的工具 141
14.7 前进之路 142
14.7.1 ClientApp与ServerApp 142
14.7.2 布局模板 142
14.7.3 其他经验教训 143
14.8 Brisket的下一步? 143
14.9 补充说明 144
第15章 Colony案例研究:脱离Node创建同构应用 145
15.1 问题 145
15.2 模板 146
15.3 数据 147
15.4 转译视图模型 148
15.5 布局 150
15.6 页面生成器 152
15.7 前端SPA 152
15.8 最终架构 153
15.9 后续计划 154
第16 章 结语 155
16.1 设计模式、Flux和同构Javascript家族 155
16.1.1 永远相信JavaScrip 156
16.1.2 命名与理解 157
关于作者 159
关于封面 159
资源截图: