前言:
其实我们在项目里面用 React 已经很久了,这次赶在社区的读书活动再全面了解一下 React 的相关的东西,收获很多,感谢社区举办的活动有这么好的书。
正文:
其实,React 到底是什么?
那React 到底能做什么?
- 本质上是一个状态机,管理复杂的随着时间变化的状态
- 只关心 更新 DOM、响应事件
- 不处理 Ajax、路由、数据存储,不规定数据组织的方式
React 有什么不一样的特点?
- 对 DOM 只更新不读取
- 高效的算法来计算虚拟页面当前版本和新版的差异
- 最小化重绘,避免不必要的DOM操作
- 在整个应用中只使用单个事件处理器,并且把所有的事件委托到这个处理器上
试读章节里面主要集中在 【第三章的《组件的生命周期》】,这章其实还是很重要的:
- 作为新手,你必须熟悉在什么事件里面可以加入一些方法来控制一些东西
实例化:
每一个新组件被创建、首次渲染
- getDefaultProps
组件类,这个方法只会被调用一次。返回的对象为实例设置的默认 props 值。
- getInitialState
组件的每一个实例,被调用有且只有一次。在这里可以初始化每一个实例的 state。
与 getDefaultProps 区别:
- componentWillMount
完成首次渲染之前被调用,render 之前。
- render
你会创建一个虚拟 DOM,返回的不是真正的 DOM。必需定义:
- 只能通过 this.props 和 this.state 方法数据
-
可以返回 null、 false 或者 React 组件
-
只能出现一个顶级组件(不能返回一组元素):就是只能return 一个父元素包裹
-
不能改变组件的状态
- componentDidMount
render 成功调用且真实 DOM 已经渲染后,this.getDOMNode() 方法访问
【第 10 章的《动画》】其实自己在项目里面很少用,所以可能关注不是很多。
下面还是重点说一下 【14 章的 《开发工具》】,这部分其实对于任何新手,接触一个新的类库或者语音,都是必须要去关注的,因为有了好的开发工具,这样才能利于你快速找到问题,解决问题。
- 构建工具
全面地讲:它就是 Browserify + gulp | grunt ,默认情况下:启用了一个 CommonJS 解释器插件。
很多使用过 React 的人也开始渐渐地用Webpack 来作为它的 主力打包工具了。
- 调试工具
Chrome 浏览器扩展里面安装 《React Developer Tool》,可以用它来非常方便地调试。