Javascript 在react组件类中,其中;道具;正在从中拉出的对象?
直截了当地说,在基于react类的组件中,Javascript 在react组件类中,其中;道具;正在从中拉出的对象?,javascript,reactjs,jsx,Javascript,Reactjs,Jsx,直截了当地说,在基于react类的组件中,prop对象来自哪里 我正在学习官方的React-tic-tac-toe游戏教程 首先,当我查看react组件类的代码时(我们在创建react组件时对其进行了扩展),我注意到该函数有3个参数组件(props、context、updater),但我不明白为什么在只调用super()的情况下,props像super>一样被传递(道具)。 不应该为上下文和更新程序传递值吗?为什么在没有调用super的情况下运行代码时没有错误 import React, { C
prop
对象来自哪里
我正在学习官方的React-tic-tac-toe游戏教程
首先,当我查看react组件
类的代码时(我们在创建react组件时对其进行了扩展),我注意到该函数有3个参数组件(props、context、updater)
,但我不明白为什么在只调用super()的情况下,props像super>一样被传递(道具)
。
不应该为上下文
和更新程序
传递值吗?为什么在没有调用super
的情况下运行代码时没有错误
import React, { Component } from "react";
export class Square extends Component
{
render()
{
return (
<span>
<button className="square" onClick={ () => { alert("click") } }>
{this.props.value}
</button>
</span>
)
}
}
import React,{Component}来自“React”;
导出类Square扩展组件
{
render()
{
返回(
{alert(“click”)}>
{this.props.value}
)
}
}
我明白,
{this.props.value}
中的value
属性来自传递给Square
;
的属性,该属性是另一个组件中的子组件(在React教程中为Board
)但这不是我所指的。道具是从超类传递到使用React中的扩展组件创建的类的属性
类似于OOPS中父类属性传递给构造函数中的子类的情况。类似于在React中传递PROP的方式,这也适用于功能组件
注意-请不要将其与OOPS概念混淆[仅给出一个示例]
简化版]
有一件事是必需的:父类(即组件
类)构造函数必须在任何React类组件中调用
super
所做的(在Square
构造函数中)是使用Square
的道具调用组件的构造函数(希望不要太复杂)
如果Square
有一个构造函数
,那么应该隐式调用super
如果Square
没有构造函数,则在使用
时将自动调用组件的构造函数
此外,您也不直接在组件中使用上下文
或更新程序
。因此不需要在组件中定义它们。但是调用超级()
在代码可以无错误运行之前?为什么它在没有调用super
的情况下运行?这就是我提到它的原因,它是概念的过度简化。这是由react内部处理的,当我们扩展类时,它继承了父类的所有内容,并且道具是父类的一部分。这将给您一个非常好的解决方案关于为什么是超级(道具)的好主意