《深入React技术栈》读书笔记1

第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组件的构建方式

  1. React.createClass
  2. ES6 classes
  3. 无状态函数:无状态组件不像上述两种方法在调用时会创建新实例,它创建时始终保持了一个实例,避免了不必要的检查和内存分配,做到了内部优化。

React数据流

  • setState是一个异步方法
  • React组件设计
    • 智能组件:组件内部的交互欣慰,被选择后通过回调函数返回具体选择的索引
    • 木偶组件:组件外部在传入具体的索引,组件就像木偶一样被操控着​