组件的创造方法为React.createClass() ——创造一个类,react系统内部设计了一套类系统,利用它来创造react组件。但这并不是必须的,我们还可以用es6的class类来创造组件,这也是Facebook官方推荐的写法。

这两种写法实现的功能一样但是原理却是不同,es6的class类可以看作是构造函数的一个语法糖,可以把它当成构造函数来看,extends实现了类之间的继承 —— 定义一个类Main 继承React.Component所有的属性和方法,组件的生命周期函数就是从这来的。constructor是构造器,在实例化对象时调用,super调用了父类的constructor创造了父类的实例对象this,然后用子类的构造函数进行修改。这和es5的原型继承是不同的,原型继承是先创造一个实例化对象this,然后再继承父级的原型方法。了解了这些之后我们在看组件的时候就清楚很多。

当我们使用组件< Main />时,其实是对Main类的实例化——new Main,只不过react对这个过程进行了封装,让它看起来更像是标签。

有三点值得注意:1、定义类名字的首字母必须大写 2、因为class变成了关键字,类选择器需要用className来代替。 3、类和模块内部默认使用严格模式,所以不需要用use strict指定运行模式。

最新文章

  1. winform版弹框操作
  2. SQL Server系统表sysobjects介绍与使用(转))
  3. JDK NIO编程
  4. topcoder SRM 618 DIV2 LongWordsDiv2
  5. PHP代码优化技巧大盘点
  6. Oracle 触发器在日志管理开发中的应用
  7. Android 如何使用juv-rtmp-client.jar向Red5服务器发布实时视频数据
  8. [MongoDB] Introduce to MongoDB
  9. .NET Framework 各版本区别(简介)
  10. jQuery中的选择器及筛选器
  11. 教你怎么样在大陆直接使用google搜索
  12. 从零学习Flutter(一):初识Dart
  13. Neural Network Programming - Deep Learning with PyTorch with deeplizard.
  14. 一种基于python的人脸识别开源系统
  15. Python package和module
  16. 一次有趣的ant-design与后端数据交互的使用
  17. monitor
  18. Uncaught DOMException: Blocked a frame with origin &quot;http://localhost
  19. LINUX网络编程 IO 复用
  20. Windows Redis安装,Java操作Redis

热门文章

  1. fedora下yum安装gnome和kde桌面 (有问题 )
  2. mysql5.7 this is incompatible with sql_mode=only_full_group_by错误
  3. 10 Steps To be a senior programmer
  4. zabbix4.2学习笔记--新建用户组和用户
  5. JavaSE-08 封装
  6. mysql limit关键字
  7. python清除字符串中无用字符
  8. JavaScript异步编程解决方案探究
  9. fastclick.js插件使用
  10. Mongo索引学习笔记