在componentDidMount,原因如下:
- componentDidMount指的是第一次插入dom完毕,无论在同步和异步模式下都仅会触发一次
- 在目前16.3之前的react版本中 ,react是同步渲染的,在componentWillMount中接口调用,有可能不会触发界面渲染,而在componentDidMount中渲染一定会触发界面渲染,具体可以看这个issue
- 在16.3之后react开始异步渲染,在异步渲染模式下,使用componentWillMount会被多次调用,并且存在内存泄漏等问题
- 关于在componentWillMount比componentDidMount请求早,界面渲染会更快等说法,在最新的react blog里也解释了,其实这一说法一直来并不成立; 具体是componentWillMount会立即执行,执行完之后会立即进行render