React.js 小书介绍
这是一本关于 React.js 的小书。
因为工作中一直在使用 React.js,也一直以来想总结一下自己关于 React.js 的一些知识、经验。于是把一些想法慢慢整理书写下来,做成一本开源、免费、专业、简单的入门级别的小书,提供给社区。希望能够帮助到更多 React.js 刚入门朋友。
由于水平有限,编写的过程难免会有诸多错误,也希望大家在看的过程中发现了问题,可以在 Github 上给该项目发 Pull Request。衷心希望可以有更多的人参与到本书的编写当中。
(本书的后续可能会做成视频教程,敬请期待。)
本书介绍
本书为有一点前端基础的并且是 React.js 零基础的同学而作,帮助他们掌握 React.js 并且灵活地把 React.js 应用到实际项目当中。如果你有一定的 HTML、CSS、JavaScript 基础并且希望学习 React.js,而又觉得 React.js 当中有些概念比难以接受和理解,希望能够从零开始学习,那么本书很适合你。但如果你已经对前端已经非常熟悉并且用过不少的前端框架和相关的组件化技术,建议你直接看官网文档。
本书并不会文档式地包含所有知识点,只会提炼实战经验中基础的、重要的、频繁的知识进行重点讲解,让你能用最少的精力深入了解实战中最需要的 React.js 知识和套路,轻装上路。如果需要更多更全面的知识点,可以参看更多的官方文档或者其他丰富的资料。
另外,本书全书采用 ECMAScript 2015,阅读之前请确保自己已经掌握了 ECMAScript 2015 的基本语法,否则阅读起来会非常困难。
本书初定分为三个阶段,每个阶段最后会有实战分析,把该阶段的知识点应用起来。
第一个阶段:希望能让读者掌握 React.js 的基本概念和基础知识。包括问题的根源:前端组件的复用性问题、数据和视图的同步问题。了解清楚问题以后再了解 React.js 的基础知识,包括 JSX、事件监听、state、props、列表渲染等。看看 React.js 是怎么解决这些问题的。这个阶段结束以后,读者就可以可以运用 React.js 构建简单的页面功能。
第二个阶段:让读者更进一步了解 React.js,包括组件生命周期及其含义、state 和 props 的进阶概念、props 验证及其意义、组件组合进阶、如何和 DOM 打交道、并且开始引入前端应用状态管理所存在的问题。
第三个阶段:让读者掌握 React.js 较为高级的概念,包括高阶组件、context。并且尝试引入 React-router、redux 来协助我们构建较为完整的前端应用;还会开始深入讨论前端应用状态管理的问题。
目录
第一个阶段
- Lesson 1 - React.js 简介
- Lesson 2 - 前端组件化(一):从一个简单的例子讲起
- Lesson 3 - 前端组件化(二):优化 DOM 操作
- Lesson 4 - 前端组件化(三):抽象出公共组件类
- Lesson 5 - React.js 基本环境安装
- Lesson 6 - 使用 JSX 描述 UI 信息
- Lesson 7 - 组件的 render 方法
- Lesson 8 - 组件的组合、嵌套和组件树
- Lesson 9 - 事件监听
- Lesson 10 - 组件的 state 和 setState
- Lesson 11 - 配置组件的 props
- Lesson 12 - state vs props
- Lesson 13 - 渲染列表数据
- Lesson 14 - 实战分析:评论功能(一)
- Lesson 15 - 实战分析:评论功能(二)
- Lesson 16 - 实战分析:评论功能(三)
第二个阶段
- Lesson 17 - 前端应用状态管理 —— 状态提升
- Lesson 18 - 挂载阶段的组件生命周期(一)
- Lesson 19 - 挂载阶段的组件生命周期(二)
- Lesson 20 - 更新阶段的组件生命周期
- Lesson 21 - ref 和 React.js 中的 DOM 操作
- Lesson 22 - props.children 和容器类组件
- Lesson 23 - dangerouslySetHTML 和 style 属性
- Lesson 24 - PropTypes 和组件参数验证
- Lesson 25 - 实战分析:评论功能(四)
- Lesson 26 - 实战分析:评论功能(五)
- Lesson 27 - 实战分析:评论功能(六)
第三个阶段(编写中)
- Lesson 28 - 高阶组件(Higher-Order Components)
- Lesson 29 - React.js 的 context
- Lesson 30 - 动手实现 Redux(一):优雅地修改共享状态
- Lesson 31 - 动手实现 Redux(二):抽离 store 和监控数据变化
- Lesson 32 - 动手实现 Redux(三):纯函数(Pure Function)简介
- Lesson 33 - 动手实现 Redux(四):共享结构的对象提高性能
- Lesson 34 - 动手实现 Redux(五):不要问为什么的 reducer
- Lesson 35 - 动手实现 Redux(六):Redux 总结
- Lesson 36 - 动手实现 React-redux(一):初始化工程
- Lesson 37 - 动手实现 React-redux(二):结合 context 和 store
特别鸣谢
特别感谢以下朋友对本书所做的审校工作,给本书提出了很多宝贵的改进意见:
License
本作品采用 署名-禁止演绎 4.0 国际许可协议 进行许可
React.js 小书介绍的更多相关文章
- React.js 小书 Lesson25 - 实战分析:评论功能(四)
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson25 转载请注明出处,保留原文链接和作者信息. (本文未审核) 目前为止,第二阶段知识已经基本 ...
- React.js 小书 Lesson6 - 使用 JSX 描述 UI 信息
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson6 转载请注明出处,保留原文链接和作者信息. 这一节我们通过一个简单的例子讲解 React.j ...
- React.js小书总结
(迁移自旧博客2017 08 27) 第一阶段 react的组件相当于MVC里面的View. react.js 将帮助我们将界面分成了各个独立的小块,每一个块就是组件,这些组件之间可以组合.嵌套,就成 ...
- 很赞的一个教程: React.js 小书
很赞, React.js 小书 http://huziketang.com/books/react/ 推荐阅读入门, 照着来一遍,能会个七七八八, 更多的还需要多写 import Re ...
- React.js 小书 Lesson26 - 实战分析:评论功能(五)
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson26 转载请注明出处,保留原文链接和作者信息. (本文未审核) 持久化评论 同样地,可以通过类 ...
- React.js 小书 Lesson24 - PropTypes 和组件参数验证
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson24 转载请注明出处,保留原文链接和作者信息. 我们来了到了一个非常尴尬的章节,很多初学的朋友 ...
- React.js 小书 Lesson23 - dangerouslySetHTML 和 style 属性
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson23 转载请注明出处,保留原文链接和作者信息. 这一节我们来补充两个之前没有提到的属性,但是在 ...
- React.js 小书 Lesson21 - ref 和 React.js 中的 DOM 操作
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson21 转载请注明出处,保留原文链接和作者信息. 在 React.js 当中你基本不需要和 DO ...
- React.js 小书 Lesson22 - props.children 和容器类组件
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson22 转载请注明出处,保留原文链接和作者信息. 有一类组件,充当了容器的作用,它定义了一种外层 ...
随机推荐
- composer安装及使用说明和相关原理文档
一.安装composer: 1.官方安装方法见https://getcomposer.org/download/ 2.本人安装方法: ①先配好yum源(不会配置的见博客如何制作自己的yum源),我 ...
- 解决window.navigator.geolocation.getCurrentPosition在IOS10系统中无法进行地理定位问题
昨天接到用户通知说在点击"看场地"时无法获取地理位置信息. 在接到通知时,首先想到的是排查机型问题.由于客户多为IOS用户,所以最先看的是在安卓是有没有此问题的发生,调查结果为安卓 ...
- swift学习 - 单例实现(singleton)
swift中实现单例的方式 class LGConfig: NSObject { static let instance = LGConfig() private override init() { ...
- Swift 入门之简单语法(三)
集合 数组 数组使用 [] 定义,这一点与 OC 相同 //: [Int] let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 遍历 for num in nu ...
- [问题贴]mui.openWindow+自定义事件监听操作让alert()执行两次
仔细看,Alert函数执行了两次 共两个页面:index.html和detail.html, detail.html为按钮设置了自定义事件监听(newsId),触发alert. 在index.html ...
- OWIN 自宿主模式WebApi项目,WebApi层作为单独类库供OWIN调用
OWIN是Open Web Server Interface for .NET的首字母缩写,他的定义如下: OWIN在.NET Web Servers与Web Application之间定义了一套标准 ...
- python对mysql数据库操作的三种不同方式
首先要说一下,在这个暑期如果没有什么特殊情况,我打算用python尝试写一个考试系统,希望能在下学期的python课程实际使用,并且尽量在此之前把用到的相关技术都以分篇博客的方式分享出来,有想要交流的 ...
- CTE递归 MAXRECURSION 遇到的问题
在使用Sql Server的时候,当需要递归的时候很多时候就会想到使用CTE.但是当递归层数比较多,超过了100层,或者是一个递归死循环的时候.执行就会爆递归次数已到,最多100的错误. 当面对第一种 ...
- Spring+SpringMVC+MyBatis深入学习及搭建(八)——MyBatis查询缓存
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6956206.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(七)——My ...
- 保存和恢复 Android Fragment 的状态
经过几年在 Android 应用开发中应用 Fragment 的努力之后,我必须要说尽管Fragment的概念非常优秀,但是它也同时带来了一堆问题.当我们处理实例的状态保存时就需要特别一件一件地修护好 ...