编辑推荐
null
内容简介
使用React构建现代Web应用,需要组合使用一个完整的技术栈:MongoDB(NoSQL数据库)、Express(Web应用服务器框架)及其运行语言Node(服务器端的JavaScript),从而形成对React技术的完美补充。本书还涵盖了构建完整Web应用所用到的诸多工具:React Router、React-Bootstrap、Redux、babel以及webpack。 瓦萨尼·苏布拉玛尼安著的《MERN全栈开发(使用Mongo Express React和Node)》旨在帮助读者掌握构建完备Web应用的技能,书中的大部分内容都会专注于React技术的使用。 流行的MEAN(MongoDB、Express、AngularJS、Node)技术栈引入了单页面应用(SPA)和前端的MVC(模型-视图-控制器)模式,引领了全新、高效的开发模式。不过它也有缺点,例如缺乏能够良好支持SEO的服务器端渲染能力,以及作为框架而言过于严格的规范性。 Facebook创立的React技术并不是AngularJS直接的竞争对手,它并不是一个完整的MVC框架,而是一个用于创建用户界面(某种意义上来说,就是视图部分)的JavaScript库。然而,使用React替代AngularJS来创建Web应用也是完全可行的,这也正是MERN技术栈存在的价值。
作者介绍
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 MERN是什么 1.2 本书的目标读者 1.3 本书组织结构 1.4 格式约定 1.5 读者须知 1.6 MERN的组件 1.6.1 React 1.6.2 Node.js 1.6.3 Express 1.6.4 MongoDB 1.6.5 工具与库 1.7 为何使用MERN技术栈 1.7.1 清一色的JavaScript语言 1.7.2 清一色的JSON数据格式 1.7.3 Node.js的性能 1.7.4 npm生态系统 1.7.5 同构性 1.7.6 它不是一个框架 1.8 小结 第2章 Hello World 2.1 脱离服务器的Hello World 2.2 服务器搭建 2.2.1 nvm 2.2.2 Node.js 2.2.3 项目 2.2.4 npm 2.2.5 Express 2.3 构建阶段的JSX编译 2.3.1 分离脚本文件 2.3.2 转换 2.3.3 自动化 2.3.4 React库 2.4 ES2015 2.5 小结 2.6 习题答案 2.6.1 习题:JSX 2.6.2 习题:npm 2.6.3 习题:Express 2.6.4 习题:babel 2.6.5 习题:ES2015 第3章 React组件 3.1 Issue Tracker(问题追踪) 3.2 React类 3.3 组件组装 3.4 传递数据 3.4.1 使用属性 3.4.2 属性校验 3.4.3 使用Children 3.5 动态组装 3.6 小结 3.7 习题答案 3.7.1 习题:React类 3.7.2 习题:传递数据 3.7.3 习题:动态组装 第4章 React状态 4.1 设置状态 4.2 异步状态初始化 4.3 事件处理 4.4 从子组件到父组件的通信 4.5 无状态组件 4.6 设计组件 4.6.1 状态与props 4.6.2 组件层次结构 4.6.3 通信 4.6.4 无状态组件 4.7 小结 4.8 习题答案 4.8.1 习题:设置状态 4.8.2 习题:从子组件到父组件的通信 第5章 Express REST APIs 5.1 REST 5.1.1 基于资源 5.1.2 使用HTTP Methods标识操作 5.1.3 JSON 5.2 Express 5.2.1 路由 5.2.2 处理程序函数 5.2.3 中间件 5.3 List API 5.3.1 服务器自动重启 5.3.2 测试 5.4 Create API 5.5 使用List API 5.6 使用Create API 5.7 错误处理 5.8 小结 5.9 习题答案 5.9.1 习题:List API 5.9.2 习题:Create API 5.9.3 习题:使用List API 5.9.4 习题:使用Create API 5.9.5 习题:错误处理 第6章 使用MongoDB 6.1 MongoDB基础 6.1.1 文档 6.1.2 集合 6.1.3 查询语言 6.1.4 安装 6.1.5 mongo shell 6.1.6 shell脚本 6.2 架构初始化 6.3 MongoDB Node.js驱动程序 6.3.1 回调 6.3.2 Promises 6.3.3 Generator和co模块 6.3.4 async模块 6.4 从MongoDB读取数据 6.5 向MongoDB写入数据 6.6 小结 6.7 习题答案 6.7.1 习题:mongo shell 6.7.2 习题:架构初始化 6.7.3 习题:从MongoDB读取数据 6.7.4 习题:向MongoDB写入数据 第7章 模块化与webpack 7.1 服务器端模块 7.2 webpack简介 7.3 手工使用webpack 7.4 转换和打包 7.5 库捆绑包 7.6 模块热替换 7.7 使用中间件实现HMR 7.8 调试 7.9 服务器端ES2015 7.10 ESLint 7.11 小结 7.12 习题答案 7.12.1 习题:转换和打包 7.12.2 习题:模块热替换 7.12.3 习题:服务器端ES2015 7.12.4 习题:ESLint 第8章 使用React Router进行路由 8.1 路由技术 8.2 简单的路由 8.3 路由参数 8.4 路由查询字符串 8.5 使用程序进行导航 8.6 嵌套的路由 8.7 浏览器历史 8.8 小结 8.9 习题答案 8.9.1 习题:路由参数 8.9.2 习题:路由查询字符串 8.9.3 习题:使用程序进行导航 第9章 表单 9.1 List API中的更多过滤功能 9.2 过滤表单 9.3 Get API 9.4 Edit页面 9.5 UI组件 9.5.1 数字输入框 9.5.2 Date输入框 9.6 Update API 9.7 使用Update API 9.8 Delete API 9.9 使用Delete API 9.10 小结 9.11 习题答案 9.11.1 习题:在List API中添加更多过滤条件 9.11.2 习题:过滤表单 9.11.3 习题:Edit页面 9.11.4 习题:Date输入框 9.11.5 习题:Update API 第10章 React-Bootstrap 10.1 安装Bootstrap 10.2 导航 10.3 表格和面板 10.4 表单 10.4.1 基于栅格的表单 10.4.2 内联表单 10.4.3 横向表单 10.5 提示 10.5.1 验证消息 10.5.2 结果消息 10.6 模态对话框 10.7 小结 10.8 习题答案 10.8.1 习题:导航 10.8.2 习题:基于栅格的表单 10.8.3 习题:内联表单 10.8.4 习题:模态对话框 第11章 服务器端渲染 11.1 基本的服务器端渲染 11.2 处理state 11.3 初始state 11.4 服务器端bundle 11.5 后端HMR 11.6 配合路由功能的服务器端渲染 11.7 封装Fetch操作 11.8 小结 11.9 习题答案 11.9.1 习题:后端HMR 11.9.2 习题:配合路由功能的服务器端渲染 第12章 高级特性 12.1 MongoDB聚合 12.2 分页 12.3 高阶组件(Higher Order Components) 12.4 搜索栏 12.5 Google账号登录 12.6 会话处理 12.7 小结 第13章 展望 13.1 Mongoose 13.2 Flux 13.3 部署 13.4 mern.io 13.5 同学们,下课
媒体评论
null