官方建议把ajax写到componentdidmount中,
在render之前,在componentwillmount中执行setState不会重新render
但是如果写在componentwillmount中的setState在render之后执行,比如设置了定时器,setState后,也会造成重新render
写在componentdidmount中的ajax,一定是在第一次render之后再render的
既然如上所述,那把ajax写在componentwillmount中不是更好吗?
如果ajax的执行在render之前得到了值,并setState,那就执行一次render。
如果在第一次render之后得到了值,那就如同componentdidmount一样再次render就行,这样有可能还省去一些render。
虽然reactjs的diff算法很快,但两次的render肯定没有一次效率高
梦里花落0921
相关分类