Javascript 在构造函数中获取数据
在javascript类Javascript 在构造函数中获取数据,javascript,reactjs,Javascript,Reactjs,在javascript类构造函数()中获取数据是一种很好的做法吗 例如,在react类构造函数()中,我在componendddimount()中找到的每个教程都会获取数据,但没有人解释为什么我们不能在构造函数()中这样做 这个问题涉及javascript类,而不仅仅是react 在安装组件之前调用构造函数(如#Constructor doc:中所述) 为了回答您的问题,解释在于react组件的生命周期以及在状态更改时重新绘制的需要。通过在构造函数中执行异步调用,可以在装入组件之前触发setSt
构造函数()
中获取数据是一种很好的做法吗
例如,在react类构造函数()
中,我在componendddimount()
中找到的每个教程都会获取数据,但没有人解释为什么我们不能在构造函数()
中这样做
这个问题涉及javascript类,而不仅仅是
react
在安装组件之前调用构造函数(如#Constructor doc:中所述)
为了回答您的问题,解释在于react组件的生命周期以及在状态更改时重新绘制的需要。通过在构造函数中执行异步调用,可以在装入组件之前触发setState
在构造函数中执行异步调用会影响重新呈现,如果在构造函数中调用setState,组件有时不会重新呈现
从文件:
不应在构造函数()中调用setState()。相反,如果组件需要使用本地状态,请直接在构造函数中将初始状态分配给this.state:
避免在构造函数中引入任何副作用或订阅。对于这些用例,请改用componentDidMount()
类构造函数是一个函数,只有当函数在DOM中第一次初始化时才会被调用。 在普通的语言行为中,只有当我们使用new关键字实例化一个类时,它的构造函数才会被调用。 现在,如果我们在Javascript类构造函数中获取数据:
组件的类类型
,它与生命周期方法和其他一些好东西一起提供,您可以阅读更多
一般来说,在生命周期方法
componentDidMount
中获取数据是最佳做法。在检索数据之后,组件需要一个放置数据的位置,并且在调用此生命周期方法时,可以确保至少调用了一次render()
。componentDidMount
更好,原因有很多。例如,构造函数将在服务器端呈现中运行,但componentDidMount
不会。