React学习边角料

202 阅读2分钟

这里我们主要谈论三个问题:
1.constructor里的super是干啥的?
2.static关键字是什么?
3.react的类组建和函数式组建有什么区别?

1.constructor里的super是干啥的?

super关键字用于访问和调用一个对象的父对象上的函数
super类似于ES5语法中的call继承

image.png 既然 super 是一个可以调用的东西,它是一个函数么? 这个问题的答案很容易找到,可以把 super 赋值到其它变量试试,会得到一个语法错误

image.png

因为 super 的词法定义是伴随后面那对括号的

super另一种用法

image.png

除了在 constructor 里直接调用外还可以使用 super.xxx(…) 来调用父类上的某个原型方法

2.static关键字是什么

static关键字是我们在分享react新的生命周期钩子的时候注意到的
static getDerivedStateFromProps
还有另外几个关键字:
public,private,protected
class 通过 static关键字来定义静态方法
不能在类的实例上调用静态方法只能通过类本身,但是可以被继成

image.png

public关键字
只在ts里面可以用!!!(之前是java里面的概念ts语法借鉴过来的但是JS可以通过其他的方法来模拟,注意看一下编译之后的结果)

image.png

image.png

注意看一下编译后的结果,用prototype来模拟public
public class本身可以使用 实例也可以使用 继承子类也可以使用

private关键字

image.png

private关键字很🐶,只能在class内部调用
也无法被继成

protected关键字
只能在类本身和子类本身里面用
实例里面不能用

image.png

image.png

3.react的类组建和函数式组建有什么区别

1.传递参数的不同
2.纯函数与class
3.状态管理的不同
4.生命周期的不同