Lok*_*wal 25 javascript reactjs redux react-redux
解雇服务器调用在componentWillMount生命周期方法中获取数据是一种不好的做法?
为什么使用componentDidMount更好.
Sag*_*b.g 21
更新 - 可能/ 2018
在一个称为异步呈现的工作进程中有一个新功能可以做出反应.
至于反应,v16.3.2这些方法使用起来并不"安全":
你可以在文档中阅读更多相关信息.
作为一般规则,根本不使用 componentWillMount(如果使用es6 class语法).请改用该constructor方法.
这种生命周期方法适用于同步状态初始化.
componentDidMount另一方面有利于异步状态操作.
为什么?
那么,当你在一个异步请求constructor/ componentWillMount你之前render被调用,由当时的异步操作完成的render方法很可能已经完成,没有点设置"初始状态"在这个阶段是它?
我不确定这是你的情况,但开发人员想要异步启动状态的大多数情况componentWillMount是避免第二次render调用.但你无法避免,如上所述,你可以render在异步操作完成之前解雇.
因此,调用异步操作的最佳时间是在render调用并挂载组件(您可以挂载null或为空<div/>)然后获取数据,设置状态并分别重新呈现之后.
componentDidMount 是调用获取数据的最佳位置,原因有两个:
使用componentDidMount清楚地表明,在初始渲染之后才会加载数据.您需要正确设置初始状态,因此您不会获得undefined导致错误的状态.
如果您需要在服务器上呈现您的应用程序,componentWillMount将被调用两次(在服务器上,再次在客户端上),这可能不是您想要的.将数据加载代码放入componentDidMount将确保仅从客户端获取数据.通常,您不应该添加副作用componentWillMount.
| 归档时间: |
|
| 查看次数: |
10881 次 |
| 最近记录: |