《React:引领未来的用户界面开发框架》读后感
前言:
其实我们在项目里面用 React 已经很久了,这次赶在社区的读书活动再全面了解一下 React 的相关的东西,收获很多,感谢社区举办的活动有这么好的书。
正文:
其实,React 到底是什么?
- Facebook 内部的一个 js 类库
- 13年开源
- 用于创建 Web 用户交互界面
- 来自 PHP 框架 XHP(每次有请求进来时渲染整个页面) 的一个分支
那 React 到底能做什么?
- 本质上是一个状态机,管理复杂的随着时间变化的状态
- 只关心 更新 DOM、响应事件
- 不处理 Ajax、路由、数据存储,不规定数据组织的方式
React 有什么不一样的特点?
- 对 DOM 只更新不读取
- 高效的算法来计算虚拟页面当前版本和新版的差异
- 最小化重绘,避免不必要的DOM操作
- 在整个应用中只使用单个事件处理器,并且把所有的事件委托到这个处理器上
试读章节里面主要集中在 【第三章的《组件的生命周期》】,这章其实还是很重要的:
- 作为新手,你必须熟悉在什么事件里面可以加入一些方法来控制一些东西
实例化:
每一个新组件被创建、首次渲染
- getDefaultProps
组件类,这个方法只会被调用一次。返回的对象为实例设置的默认 props 值。
- getInitialState
组件的每一个实例,被调用有且只有一次。在这里可以初始化每一个实例的 state。
与 getDefaultProps 区别:
- 每次实例创建时该方法都会被调用一次
- 可以访问 this.props
- componentWillMount
完成首次渲染之前被调用,render 之前。
- render
你会创建一个虚拟 DOM,返回的不是真正的 DOM。必需定义:
- 只能通过 this.props 和 this.state 方法数据
-
可以返回 null、 false 或者 React 组件
-
只能出现一个*组件(不能返回一组元素):就是只能return 一个父元素包裹
-
不能改变组件的状态
- componentDidMount
render 成功调用且真实 DOM 已经渲染后,this.getDOMNode() 方法访问
【第 10 章的《动画》】其实自己在项目里面很少用,所以可能关注不是很多。
下面还是重点说一下 【14 章的 《开发工具》】,这部分其实对于任何新手,接触一个新的类库或者语音,都是必须要去关注的,因为有了好的开发工具,这样才能利于你快速找到问题,解决问题。
- 构建工具
- Browserify ----- js 打包工具,支持在浏览器端使用 Node.js 风格的 require 方法,只支持js
- Webpack ----- 功能更强大:
- 将CSS 图片已经其他资源打包到同一个包
- 打包之前预处理(less,coffee,jsx等)
- 入口文件的不同把你的包拆分
- 支持开发环境的特性标志位
- 支持模块代码热替换
- 支持异步加载
全面地讲:它就是 Browserify + gulp | grunt ,默认情况下:启用了一个 CommonJS 解释器插件。
很多使用过 React 的人也开始渐渐地用 Webpack 来作为它的 主力打包工具了。
- 调试工具
Chrome 浏览器扩展里面安装 《React Developer Tool》,可以用它来非常方便地调试。
推荐阅读
-
《React:引领未来的用户界面开发框架》读后感
-
C++图形用户界面开发框架Qt 6.x - 基于Qt Widget的UI工具 QtC++界面控件
-
C++图形用户界面开发框架Qt 6.x- QML中的可视化元素 Qtc++界面开发QML
-
C++图形用户界面开发框架Qt 6.x - QML中的定位器和布局 C++用户界面开发框架Qt 6Qt
-
用户界面开发框架Qt 6.x入门级教程 - 创建基于Qt Widget的应用(一) Qt CreatorC++图形界面开发界面框架Qt
-
用户界面开发框架Qt 6.x入门级教程 - 创建基于Qt Widget的应用(一) Qt CreatorC++图形界面开发界面框架Qt
-
C++图形用户界面开发框架Qt 6.x - 基于Qt Widget的UI工具 QtC++界面控件
-
C++图形用户界面开发框架Qt 6.x - QML中的定位器和布局 C++用户界面开发框架Qt 6Qt
-
C++图形用户界面开发框架Qt 6.x- QML中的可视化元素 Qtc++界面开发QML
-
用户界面开发框架Qt 6.x入门级教程 - 创建基于Qt Widget的应用(二) Qt用户界面UIC++