导语

React是我接触的第二个框架,我最初开始接触的是vue,但是并没有深入的理解过vue,然后在工作过程中,我开始使用了React,现在已经觉得React会比vue更加实用,但是这只是个人观点,可能只是我更喜欢React的写法吧,会给我一种代码界面比较清晰的感觉,所以我开始逐步的去准备了解这个玩意

因为在这之前我只看过官方文档,所以我想按照React中JS存放的顺序,一个个去研究,可能会花费比较长的时间

Index.js

引入了React.js

React.js

它只做了一件事情,整合了所有我们开发中使用到的基础类以及方法,并export出React类。

ReactBaseClasses.js

这是我们常用的Component 以及 PureComponent的封装类。

构造函数

Component 的构造函数中,只申请私有的 prop , context , refs , updater 属性

invariant 的方法库

params:
condition, format, a, b, c, d, e, f
复制代码

判断传入的condition的真实性,如果为假,即返回format中的错误信息

在ReactBaseClasses中:

component.prototype.setState函数中验证传入的是否为Object或者为function类型,由此可见,我们常用的setState是挂载在component的原型链上的

那setState具体操作了啥呢?

setState的时候最后调用了this.updater,而在构造函数中有这么一句话

this.updater = updater || ReactNoopUpdateQueue;
复制代码

意思就是我们可以自定义自己的updater方法,如果不传入的话,会依托于React封装的 ReactNoopUpdateQueue 库,后续会自己介绍.

再往下看下去,我们会看到这么一段话

Component.prototype.forceUpdate = function(callback) {
this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');
};
复制代码

说明,我们的 Component 中的 forceUpdate 实际上也是用 ReactNoopUpdateQueue 来进行封装的方法

除了Component意外,同时还输出了PureComponent,基本结构一样,只是将Component原型链上的方法,直接赋予给PureComponent,减少了从原型链上查找的过程

所以,从这方面说明, 使用PureComponent虽然效果跟Component一样,但是实际上少了一分查找的过程

最新文章

  1. gulp使用小结(一)
  2. Linux网卡配置及学习linux的注意事项
  3. 【学习笔记】python 简单创建新建一个网络客户端,并返回相关的信息
  4. 高通平台msm8909 LK 实现LCD 兼容
  5. ToDictionary,ToLookup
  6. sqlmap win32下命令集合
  7. Http(1)
  8. BZOJ3564 信号增幅仪
  9. [wxWidgets]_[0基础]_[经常更新进度条程序]
  10. Project Euler:99 Largest exponential C++
  11. 关键字-super
  12. Codeforces Educational Round 37
  13. 带你了解zabbix整合ELK收集系统异常日志触发告警~
  14. 转:十步完全理解SQL
  15. mybatis学习系列一
  16. State Server实现多机器多站点 Session 共享 全手记
  17. Ansible Playbook 循环
  18. FancyButtons一个漂亮按钮的库
  19. POJ1751 Highways 2017-04-14 15:46 70人阅读 评论(0) 收藏
  20. 二:Bootstrap-css组件

热门文章

  1. 用最新的版本,蹦最野的迪~~~IDE写大数据程序避坑指南
  2. 路由与交换,cisco路由器配置,静态路由
  3. linux之进程管理(一)
  4. JAVA中使用使Math 类操作数据
  5. Java中的垃圾回收算法详解
  6. C# 发布时出现:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
  7. scala_spark实践2
  8. csdn的垃圾体验
  9. 编写高质量Python程序(三)基础语法
  10. intellij idea 设置用真机测试android