JavaScript全栈开发实战查看源代码讨论查看历史
《JavaScript全栈开发实战》,Adam,D.,Scott,安道 著,出版社: 中国电力出版社。
随着科学技术日新月异地发展,传播知识信息手段[1],除了书籍、报刊外,其他工具也逐渐产生和发展起来。但书籍的作用,是其他传播工具或手段所不能代替的。在当代,无论是中国,还是其他国家,书籍仍然是促进社会政治、经济、文化发展必不可少的重要传播工具[2]。
内容简介
本书详细说明了如何创建一个能适应各种平台的CRUD风格的应用。本书主要内容有:了解GraphQL查询数据的简单流程。学习API、Web应用和原生应用验证身份的共同方式。使用React和Styled Components构建高性能的Web应用。使用React Native编写可编译为原生代码的iOS和Android跨平台应用。学习使用Electron编写桌面应用。
目录
序 .1
前言 .3
第 1 章 开发环境 9
1.1 文本编辑器 . 10
1.2 终端 10
1.2.1 使用专门的终端应用 10
1.2.2 使用 VSCode 11
1.2.3 在文件系统中变换位置 11
1.3 命令行工具和Homebrew(仅适用Mac 用户) 12
1.4 Node.js 和 NPM 12
1.4.1 在 macOS 中安装 Node.js 和 NPM 13
1.4.2 在 Windows 中安装 Node.js 和 NPM 13
1.5 MongoDB 14
1.5.1 在 macOS 中安装和运行 MongoDB . 14
1.5.2 在 Windows 中安装和运行 MongoDB . 15
1.6 Git 16
1.7 Expo 16
1.8 Prettier 17
1.9 ESLint 17
1.10 美化 . 18
1.11 小结 . 18
第 2 章 API 简介 19
2.1 构建什么 19
2.2 如何构建 20
2.3 开始动手 21
2.4 小结 22
第 3 章 使用Node 和Express 开发Web 应用 23
3.1 Hello World . 23
3.2 Nodemon 24
3.3 扩展端口选项 26
3.4 小结 27
第 4 章 首个 GraphQL API 28
4.1 把服务器(初步)改造成 API 28
4.2 GraphQL 基础知识 . 33
4.2.1 模式 33
4.2.2 解析器 . 34
4.3 改造 API 35
4.4 小结 43
第 5 章 数据库 44
5.1 MongoDB 入门 . 45
5.2 在应用中连接 MongoDB . 47
5.3 在应用中读写数据 51
5.4 小结 59
第 6 章 CRUD 操作 60
6.1 分离 GraphQL 模式和解析器 60
6.2 编写 GraphQL CRUD 模式 . 64
6.3 CRUD 解析器 65
6.4 日期和时间 . 67
6.5 小结 70
第 7 章 用户账户和身份验证 71
7.1 应用身份验证流程 71
7.2 加密和令牌 . 73
7.2.1 加密密码. 73
7.2.2 JSON Web Tokens 74
7.3 在 API 中集成身份验证功能 . 75
7.3.1 User 模式 76
7.3.2 身份验证解析器 . 78
7.4 把用户添加到解析器上下文中 . 82
7.5 小结 85
第 8 章 用户操作 .86
8.1 准备工作 86
8.2 新建笔记时指定用户 . 87
8.3 用户的更新和删除权限 89
8.4 用户查询 91
8.5 收藏笔记 94
8.6 嵌套查询 99
8.7 小结 . 102
第 9 章 细节优化 103
9.1 Web 应用和 Express.js 最佳实践 103
9.1.1 Express Helmet . 103
9.1.2 跨域资源共享 104
9.2 分页 . 105
9.3 数据限制 107
9.4 其他事项 109
9.4.1 测试 109
9.4.2 订阅 109
9.4.3 Apollo GraphQL Platform 109
9.5 小结 . 110
第 10 章 部署 API . 111
10.1 托管数据库 112
10.2 部署应用 . 118
10.2.1 项目设置 118
10.2.2 部署 . 120
10.2.3 测试 . 120
10.3 小结 121
第 11 章 用户界面和 React 122
11.1 JavaScript 和 UI 123
11.2 JavaScript 声明式界面 . 124
11.3 React 入门 124
11.4 小结 130
第 12 章 使用React 构建Web 客户端 . 131
12.1 构建什么 . 131
12.2 如何构建 . 132
12.3 开始动手 . 133
12.4 构建 Web 应用 . 134
12.5 路由 136
12.6 UI 组件 141
12.7 小结 144
第 13 章 装饰应用 145
13.1 创建布局组件 145
13.2 CSS 148
13.2.1 CSS-in-JS 149
13.2.2 创建一个按钮组件 150
13.2.3 添加全局样式 . 152
13.2.4 组件样式 154
13.3 小结 158
第 14 章 使用 Apollo Client 159
14.1 设置 Apollo Client . 160
14.2 查询 API . 162
14.3 动态查询 . 173
14.4 分页 177
14.5 小结 179
第 15 章 Web 身份验证和状态管理 180
15.1 创建注册表单 180
15.1.1 React 表单和状态 . 184
15.1.2 signUp 变更操作 186
15.1.3 JSON Web Token 和本地存储器 189
15.2 重定向 . 190
15.3 为请求附加首部 190
15.4 本地状态管理 191
15.5 退出 195
15.6 创建登录表单 198
15.7 受保护的路由 203
15.8 小结 205
第 16 章 创建、读取、更新和删除操作 207
16.1 新建笔记 . 207
16.2 读取用户的笔记 214
16.3 更新笔记 . 218
16.4 删除笔记 . 226
16.5 收藏笔记 . 228
16.6 小结 232
第 17 章 部署Web 应用 . 233
17.1 静态网站 . 233
17.2 我们的部署流水线 . 235
17.2.1 使用 Git 托管源码 235
17.2.2 使用 Netlify 部署 237
17.3 小结 239
第 18 章 使用Electron 开发桌面应用 240
18.1 构建什么 . 240
18.2 如何构建 . 241
18.3 开始动手 . 241
18.4 首个 Electron 应用 . 242
18.5 特别处理 macOS 应用窗口 244
18.6 开发者工具 245
18.7 Electron API 246
18.8 小结 247
第 19 章 使用Electron 集成现有的Web 应用 248
19.1 集成 Web 应用 . 248
19.2 配置 251
19.3 内容安全策略 252
19.4 小结 255
第 20 章 部署Electron 应用 . 256
20.1 Electron Builder 256
20.2 针对当前平台构建 . 258
20.3 应用图标 . 259
20.4 针对多个平台构建 . 260
20.5 代码签名 . 260
20.6 小结 261
第 21 章 使用React Native 开发移动应用 . 262
21.1 构建什么 . 263
21.2 如何构建 . 263
21.3 开始动手 . 264
21.4 小结 268
第 22 章 移动应用shell . 269
22.1 React Native 构件 269
22.2 样式和 Styled Components 271
22.3 路由 275
22.3.1 使用 React Navigation 实现标签页路由 276
22.3.2 堆叠导航 279
22.3.3 添加界面标题 . 284
22.4 图标 285
22.5 小结 287
第 23 章 GraphQL 和React Native 288
23.1 创建列表和滚动内容视图 289
23.2 使用 Apollo Client 操作 GraphQL . 297
23.3 添加加载中指示符 . 304
23.4 小结 306
第 24 章 移动应用身份验证 307
24.1 身份验证路由流程 . 307
24.2 创建登录表单 317
24.3 通过 GraphQL 变更操作验证身份 . 322
24.4 带身份验证信息的 GraphQL 查询 . 324
24.5 添加注册表单 329
24.6 小结 335
第 25 章 分发移动应用 337
25.1 配置 app.json 337
25.2 图标和应用加载界面 340
25.2.1 应用图标 340
25.2.2 启动画面 341
25.3 发布到 Expo 中 342
25.4 创建原生构建包 343
25.4.1 iOS 344
25.4.2 Android 345
25.5 分发到应用商店中 . 346
25.6 小结 346
后记 347
附录A 在本地运行 API 349
附录B 在本地运行Web 应用 . 351
作者介绍 353
封面介绍 353
参考文献
- ↑ 涨知识:古人用什么方法传递信息?,搜狐,2017-04-03
- ↑ 书究竟有何用?,搜狐,2017-07-18