新書推薦:
《
我和抑郁症的3000天
》
售價:HK$
66.1
《
与骸骨交谈:我希望每一个真相都被发现
》
售價:HK$
76.2
《
人体使用手册3:自愈力的逻辑(全面解读身体面对疾病时的反应逻辑,学习更多有效的系列家庭按摩)
》
售價:HK$
61.6
《
素描简史:从文艺复兴到现代艺术
》
售價:HK$
436.8
《
智慧宫丛书028·神工智能 诸神与古代世界的神奇造物
》
售價:HK$
87.4
《
街头健身训练指南
》
售價:HK$
266.6
《
留学早规划
》
售價:HK$
76.2
《
文化的演化:民众动机正在重塑世界
》
售價:HK$
88.5
|
編輯推薦: |
当Web 开发技术日渐成熟,各种*实践和模式逐渐被总结和沉淀下来,技术栈这个术语开始出现。技术栈通常指的是开发一个完整的Web 应用程序时所需的特定工具、库、框架的组合。印象中,*个*热门的Web 开发技术栈是LAMPLinux、Apache、MySQL 和PHP,随着前端在Web 开发领域中所占的比例越来越大,以及Node.js 的流行,MEAN 技术栈MongoDB、Express、AngularJS 和Node.js逐渐异军突起,影响力越来越大。由于MEAN 技术栈的前后端全都使用了JavaScript 语言,这也使得全栈工程师这个称呼开始流行起来。《MERN全栈开发 使用Mongo Express React和Node》所讲述的MERN 技术栈,和MEAN 只有一字母之差。MERN将MEAN 中的AngularJS 更换成这两年明显更受欢迎、使用更加广泛的React,使得自己相比MEAN 更接地气,更适合有志成为全栈工程师的Web 开发人员阅读。在阅读本书以及完成《MERN全栈开发 使用Mongo Express React和Node》中所包含练习的过程中,你很自然地就会学习到
|
內容簡介: |
使用React构建现代Web应用,需要组合使用一个完整的技术栈:MongoDB NoSQL数据库、ExpressWeb应用服务器框架及其运行语言Node服务器端的 JavaScript,从而形成对React技术的完美补充。本书还涵盖了构建完整Web应用所 用到的诸多工具:React Router、React-Bootstrap、Redux、babel以及webpack。 《MERN全栈开发 使用Mongo Express React和Node》旨在帮助读者掌握构建 完备Web应用的技能,书中的大部分内容都会专注于React技术的使用。 流行的MEANMongoDB、Express、AngularJS、Node技术栈引入了单页面应 用SPA和前端的MVC模型-视图-控制器模式,引领了全新、高效的开发模式。不 过它也有缺点,例如缺乏能够良好支持SEO的服务器端渲染能力,以及作为框架而 言过于严格的规范性。 Facebook创立的React技术并不是AngularJS直接的竞争对手,它并不是一个完 整的MVC框架,而是一个用于创建用户界面某种意义上来说,就是视图部分的 JavaScript库。然而,使用React替代AngularJS来创建Web应用也是完全可行的,这 也正是MERN技术栈存在的价值。 主要内容 ● 详细了解React及其编程风格,了解如何充分发挥它的能力 ● 了解MongoDB、Express和Node的基本功能,这些功能足以让你完成Web应用 的搭建 ● 学习补充React功能的相关工具,包括React-Bootstrap和React Router ● 使用必要的工具搭建基于JavaScript的单页面应用 ● 将所有组件连接在一起,构建完整的Web应用
|
關於作者: |
Vasan Subramanian使用过各种各样的编程语言,从8085上手工编写8位机的汇编代码,一直到AWS Lambda。他热衷于通过软件解决问题,更喜欢寻找合适的技术组合,帮助软件开发团队提高效率。他在Corel、Wipro、Barracuda Networks软件公司学习编程,从事程序员工作的同时,也在这些公司中担任团队负责人。Vasan就读于印度理工学院马德拉斯校区IIT Madras和印度管理学院班加罗尔分校IIM Bangalore。他目前在Accel公司担任CTO,为创业公司提供各种技术指导。除了提供指导、编写程序当然还有写书!之外,Vasan也是半程马拉松爱好者,还参加五人制足球比赛。你可以通过vasan.promern@gmail.com联系他,欢迎赞扬、批评,或是介于这两者之间的一切意见。
|
目錄:
|
目 录
第1章 引言 1
1.1 MERN是什么 1
1.2 本书的目标读者 3
1.3 本书组织结构 3
1.4 格式约定 5
1.5 读者须知 7
1.6 MERN的组件 8
1.6.1 React 8
1.6.2 Node.js 11
1.6.3 Express 14
1.6.4 MongoDB 15
1.6.5 工具与库 17
1.7 为何使用MERN
技术栈 19
1.7.1 清一色的JavaScript
语言 19
1.7.2 清一色的JSON数据格式 20
1.7.3 Node.js的性能 20
1.7.4 npm生态系统 21
1.7.5 同构性 21
1.7.6 它不是一个框架 22
1.8 小结 22
第2章 Hello World 23
2.1 脱离服务器的
Hello World 23
2.2 服务器搭建 27
2.2.1 nvm 27
2.2.2 Node.js 28
2.2.3 项目 29
2.2.4 npm 30
2.2.5 Express 32
2.3 构建阶段的JSX
编译 34
2.3.1 分离脚本文件 35
2.3.2 转换 36
2.3.3 自动化 38
2.3.4 React库 39
2.4 ES2015 39
2.5 小结 43
2.6 习题答案 43
2.6.1 习题:JSX 43
2.6.2 习题:npm 44
2.6.3 习题:Express 44
2.6.4 习题:babel 45
2.6.5 习题:ES2015 45
第3章 React组件 47
3.1 Issue Tracker
问题追踪 47
3.2 React类 49
3.3 组件组装 51
3.4 传递数据 53
3.4.1 使用属性 53
3.4.2 属性校验 56
3.4.3 使用Children 57
3.5 动态组装 59
3.6 小结 64
3.7 习题答案 64
3.7.1 习题:React类 64
3.7.2 习题:传递数据 64
3.7.3 习题:动态组装 65
第4章 React状态 67
4.1 设置状态 67
4.2 异步状态初始化 71
4.3 事件处理 73
4.4 从子组件到父组件的
通信 74
4.5 无状态组件 77
4.6 设计组件 79
4.6.1 状态与props 79
4.6.2 组件层次结构 80
4.6.3 通信 80
4.6.4 无状态组件 80
4.7 小结 81
4.8 习题答案 81
4.8.1 习题:设置状态 81
4.8.2 习题:从子组件到
父组件的通信 82
第5章 Express REST APIs 83
5.1 REST 83
5.1.1 基于资源 84
5.1.2 使用HTTP Methods
标识操作 84
5.1.3 JSON 87
5.2 Express 87
5.2.1 路由 87
5.2.2 处理程序函数 89
5.2.3 中间件 91
5.3 List API 92
5.3.1 服务器自动重启 94
5.3.2 测试 95
5.4 Create API 97
5.5 使用List API 100
5.6 使用Create API 102
5.7 错误处理 104
5.8 小结 108
5.9 习题答案 109
5.9.1 习题:List API 109
5.9.2 习题:Create API 110
5.9.3 习题:使用
List API 111
5.9.4 习题:使用
Create API 111
5.9.5 习题:错误处理 111
第6章 使用MongoDB 113
6.1 MongoDB基础 113
6.1.1 文档 113
6.1.2 集合 114
6.1.3 查询语言 115
6.1.4 安装 116
6.1.5 mongo shell 117
6.1.6 shell脚本 121
6.2 架构初始化 122
6.3 MongoDB Node.js
驱动程序 123
6.3.1 回调 126
6.3.2 Promises 127
6.3.3 Generator和co
模块 128
6.3.4 async模块 129
6.4 从MongoDB读取
数据 131
6.5 向MongoDB写入
数据 134
6.6 小结 136
6.7 习题答案 136
6.7.1 习题:mongo
shell 136
6.7.2 习题:架构
初始化 137
6.7.3 习题:从MongoDB
读取数据 137
6.7.4 习题:向MongoDB
写入数据 138
第7章 模块化与webpack 139
7.1 服务器端模块 139
7.2 webpack简介 142
7.3 手工使用webpack 143
7.4 转换和打包 146
7.5 库捆绑包 151
7.6 模块热替换 155
7.7 使用中间件实现
HMR 158
7.8 调试 161
7.9 服务器端ES2015 163
7.10 ESLint 168
7.11 小结 176
7.12 习题答案 177
7.12.1 习题:转换和
打包 177
7.12.2 习题:模块热
替换 178
7.12.3 习题:服务器
端ES2015 178
7.12.4 习题:ESLint 179
第8章 使用React Router进行
路由 181
8.1 路由技术 182
8.2 简单的路由 183
8.3 路由参数 185
8.4 路由查询字符串 188
8.5 使用程序进行导航 193
8.6 嵌套的路由 196
8.7 浏览器历史 200
8.8 小结 202
8.9 习题答案 202
8.9.1 习题:路由
参数 202
8.9.2 习题:路由查询字
符串 203
8.9.3 习题:使用程序进行
导航 204
第9章 表单 205
9.1 List API中的更多过滤
功能 205
9.2 过滤表单 207
9.3 Get API 214
9.4 Edit页面 216
9.5 UI组件 220
9.5.1 数字输入框 221
9.5.2 Date输入框 226
9.6 Update API 232
9.7 使用Update API 236
9.8 Delete API 238
9.9 使用Delete API 239
9.10 小结 242
9.11 习题答案 242
9.11.1 习题:在List API
中添加更多过滤
条件 242
9.11.2 习题:过滤
表单 242
9.11.3 习题:Edit
页面 243
9.11.4 习题:Date
输入框 243
9.11.5 习题:
Update API 244
第10章 React-Bootstrap 245
10.1 安装Bootstrap 246
10.2 导航 249
10.3 表格和面板 256
10.4 表单 258
10.4.1 基于栅格的
表单 259
10.4.2 内联表单 263
10.4.3 横向表单 265
10.5 提示 270
10.5.1 验证消息 270
10.5.2 结果消息 272
10.6 模态对话框 279
10.7 小结 284
10.8 习题答案 285
10.8.1 习题:导航 285
10.8.2 习题:基于栅格
的表单 285
10.8.3 习题:内联
表单 286
10.8.4 习题:模态对
话框 286
第11章 服务器端渲染 287
11.1 基本的服务器端
渲染 288
11.2 处理state 293
11.3 初始state 296
11.4 服务器端bundle 298
11.5 后端HMR 301
11.6 配合路由功能的服务
器端渲染 306
11.7 封装Fetch操作 314
11.8 小结 319
11.9 习题答案 320
11.9.1 习题:后端
HMR 320
11.9.2 习题:配合路由功
能的服务器端
渲染 320
第12章 高级特性 321
12.1 MongoDB聚合 321
12.2 分页 331
12.3 高阶组件Higher Order
Components 336
12.4 搜索栏 345
12.5 Google账号登录 351
12.6 会话处理 359
12.7 小结 367
第13章 展望 369
13.1 Mongoose 370
13.2 Flux 371
13.3 部署 373
13.4 mern.io 375
13.5 同学们,下课 377
|
內容試閱:
|
译 者 序
当我第一次接触Web开发领域时,当时最热门的Web网站开发技术是使用C或Perl语言在服务器上编写CGICommon Gateway Interface程序,来处理客户端发起的HTTP请求。现在我虽然已经全然忘记了Perl语言的语法,但是仍然还依稀记得当年在使用这个强大而变态的语言时的感受。随着Web的迅速发展,ASP、PHP、JSP、ASP.NET出现在我们的眼前,它们各具特色,为不同技术背景的开发人员进入Web开发领域提供了所需的武器。
当Web开发技术日渐成熟,各种最佳实践和模式逐渐被总结和沉淀下来,技术栈这个术语开始出现。技术栈通常指的是开发一个完整的Web应用程序时所需的特定工具、库、框架的组合。印象中,第一个最热门的Web开发技术栈是LAMPLinux、Apache、MySQL和PHP,随着前端在Web开发领域中所占的比例越来越大,以及Node.js的流行,MEAN技术栈MongoDB、Express、AngularJS和Node.js逐渐异军突起,影响力越来越大。由于MEAN技术栈的前后端全都使用了JavaScript语言,这也使得全栈工程师这个称呼开始流行起来。
本书所讲述的MERN技术栈,和MEAN只有一字母之差。MERN将MEAN中的AngularJS更换成这两年明显更受欢迎、使用更加广泛的React,使得自己相比MEAN更接地气,更适合有志成为全栈工程师的Web开发人员阅读。
在一个开放、开源的时代,如果一本讲述开发技术的书籍同时也能让你有机会了解和熟悉GitHub,那显然是极好的。在阅读本书以及完成本书中所包含练习的过程中,你很自然地就会学习到如何寻找高质量的GitHub开源项目,并将它们应用到你的应用程序中。
祝您享受阅读本书的全过程,并能收获良多!
最后是译者的几则重要声明:
● 本书部分重要段落是由译者柴晓伟的女儿Momo完成的。谢谢Momo。
● 译者杜伟的爱猫Yuki对本书任何章节都没有贡献。
● 译者涂曙光感谢Phoebe在翻译工作中所给予的所有支持。
译者杜伟柴晓伟涂曙光
|
|