第1章 初入React世界
React特点
- 专注视图层:React不是完整的MVC/MVVM框架,它提供清晰、简介的View视图层解决方案
- Virtual dom:更高效的渲染方式
- 函数式编程:把过去不断重复构造UI的过程抽象成了组件
虚拟元素
- React通过创建与更新虚拟元素来管理整个Virtual DOM
- 虚拟元素是真实元素的对应,它的构建和更新都是在内存中完成的,并不会真正渲染到DOM中
- 虚拟元素类别
- DOM元素:HTML标签首字母小写
- 组件元素:组件元素首字母大写
使用JSX的优势
- 类XML语法 ,容易接受
- 增强JS语义:提供更加语义化且易懂的标签(将传统的HTML标签封装成React组件),我们就可以像使用HTML标签一样使用这个组件。
- 结构清晰:JSX 让小组件更加简单、明了、直观。在有上百个组件及更深层标签树的大项目中,这种好处会成倍地放大。在函数作用域内,使用 jsx 语法的版本与使用原生 JavaScript 相比,其标签的意图变得更加直观,可读性也更高。
- 抽象程度高:对于使用 jsx 的人来说,从 React0.11升级到 React0.12是无痛的——不需要修改任何代码。虽然不是灵丹妙药,但是 jsx 提供的抽象能力确实能够减少代码在项目开发过程中的改动。
- 关注点分离:将HTML 标签以及生成这些标签的代码内在地紧密联系在一起。在 React 内,你不需要把整个程序甚至单个组件的关注点分离成视图和模板文件。相反,React 鼓励你为每一个关注点创造一个独立的组件,并把所有的逻辑和标签封装在其中。
链接:https://www.cnblogs.com/clearyang/p/6899639.html
React组件的构建方式
- React.createClass
- ES6 classes
- 无状态函数:无状态组件不像上述两种方法在调用时会创建新实例,它创建时始终保持了一个实例,避免了不必要的检查和内存分配,做到了内部优化。
React数据流
- setState是一个异步方法
- React组件设计
- 智能组件:组件内部的交互欣慰,被选择后通过回调函数返回具体选择的索引
- 木偶组件:组件外部在传入具体的索引,组件就像木偶一样被操控着