JavaScript是一门小型编程语言,但它能做到的事可不少。JavaScript曾经主要用于增加Web浏览器窗口的交互性,现在已经发展成构建强大而健壮的应用的重要工具。这是一本从实际出发的书,适合新手和有经验的JavaScript开发人员阅读,学习如何使用JavaScript语言创建API,以及Web、移动和桌面应用。
本书作者Adam D. Scott是一名工程主管,他将带领你学习Node.js、GraphQL、React、React Native和Electron等技术。本书非常适合想要构建全栈应用的开发人员,以及志向高远、想自创公司的Web开发初学者阅读。本书详细说明了如何创建一个能适应各种平台的CRUD风格的应用。本书主要内容有:了解GraphQL查询数据的简单流程。学习API、Web应用和原生应用验证身份的共同方式。使用React和Styled Components构建高性能的Web应用。使用React Native编写可编译为原生代码的iOS和Android跨平台应用。学习使用Electron编写桌面应用。
本书详细说明了如何创建一个能适应各种平台的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
温馨提示:请使用员工书屋的读者帐号和密码进行登录
“这是一本令人难以置信的书,讲解了在各种平台上使用JavaScript开发应用所要知晓的一切。书名就道出了真谛,JavaScript是无处不在,已经涵盖了全部平台。本书把要讲的知识放在具体的上下文中,适合各种层次的开发人员阅读。阅读本书后,一定要动手编写代码,这样在做技术决策时才能有自信。”
——Eve Porcello
Moon Highway软件开发者和讲师