之前看文章说,不推荐在componentWillmount中请求数据,事实上这个方法也不推荐了(变成unsafe方法了)
那么有个问题,如果componentDidmount中请求数据,用来改变组件的state
因为其顺序在render之后
那么每次完整的初始化,就肯定会初始化两次了
不知道我理解的是否正确?或者有什么更好的方法吗?请赐教哈
之前看文章说,不推荐在componentWillmount中请求数据,事实上这个方法也不推荐了(变成unsafe方法了)
那么有个问题,如果componentDidmount中请求数据,用来改变组件的state
因为其顺序在render之后
那么每次完整的初始化,就肯定会初始化两次了
不知道我理解的是否正确?或者有什么更好的方法吗?请赐教哈
官方不推荐:
componentWillMount
可能在一次渲染中多次调用willMount 到 didMount用不了太久,比http请求时间短多了,就算是在willMount里去做http,也会render() 两次的
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
理解没问题,请求接口取数的话,本来就慢一拍的,所以即便是写在willMount中也不能保证一定能在render之前拿到,render中本就需要考虑请求的数据未得到的情况。
如果要求在页面渲染的时候数据必须准备好,可以换成服务端渲染页面然后注入数据到window上,或者直接ssr的时候搞。