React何时确切可用状态?

问题描述

前几天,我接受了前端开发人员职位的面试,并被逐字询问这个问题。他指出这是一个“陷阱”问题。我不确定实际答案是什么。从生命周期方法的角度来看,它会类似于componentDidMount吗?

感谢您的回复!

解决方法

组件的状态在构造函数中声明和初始化,该构造函数是react调用的第一个组件方法。

  constructor(props) {
    super(props);    
    this.state = {date: new Date()};
  }

在此图中,您可以看到React组件生命周期的所有阶段:

react lifecycle

一旦呈现componentDidMount方法,该组件将在挂载之前可用。

在功能组件的情况下,状态将在渲染阶段由钩子useState初始化

function myComponent(props) {
    const [stateVar,setStateVar] = useState(0);
} 
,

我认为您的回答是正确的。更一般的响应可能是组件的状态在安装后才可用。

ReactJS的核心是虚拟DOM,它管理状态和道具,并在虚拟DOM中的这些道具和状态发生更改时更新您的真实DOM。因此,另一个可能正确的答案是,状态在虚拟DOM中加载后就可用-并且在安装组件时发生。

编辑: 由于另一个答案看到了不同的方法,因此添加添加: 是的,您可以在构造函数中设置状态,并且可以将其视为“可用”,但是这对您没有用,因为此时尚未安装组件。您甚至可以在构造函数中更改它,但是它没有用-没有安装的组件可以使用此更改。只要未渲染父组件,任何子组件也不能使用它。

在这里可能没有看到一些边缘情况,但是通常我会说“可用”是指我可以使用它,对其进行操作并显示状态的改变-安装组件时会发生这种情况。 / p>

当然,这取决于您的面试官从中提出的观点,但是如果您这样争论,我会说这是正确的答案。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...