假設我有兩個組件,分別爲Parent
和Child
。在Parent
組件中,我有一個名爲lastName
的狀態,作爲prop傳遞給Child
。現在在Child
和Parent
的初始渲染後,如果中Parent
發生更改,是否會導致Child
組件重新渲染?當道具改變時,React是否重新渲染組件
0
A
回答
0
是的,如果你通過setState設置屬性。但是,React中的重新渲染不是你應該害怕的,因爲使用了Virtual DOM,所以效率非常高。
0
在子組件,你應該使用下面的
shouldComponentUpdate(nextProps){
return this.props.lastname !== nextProps.lastname
}
https://facebook.github.io/react/docs/component-specs.html#shouldComponentUpdate
之後,在孩子組件,您可能需要更新的狀態。爲了實現這一目標,您可以使用componentWillReceiveProps(nextProps)
componentWillReceiveProps(nextProps){
this.setState({
lastname: nextProps.lastname
});
}
0
子組件只能重新呈現時的道具lastName
在孩子的渲染功能和父用setState
功能被用來改變lastName
。請記住,React是單向數據流,如果你想在Child內部重新渲染Child組件,你必須調用一個事件,該事件也會觸發setState
返回到父組件
相關問題
- 1. 當重新渲染時,React道具只在渲染時更新
- 2. 如果子組件的道具不變,React是否仍然重新渲染它?
- 3. React在道具更新上重新渲染組件
- 4. 更新道具是否應該重新渲染整個組件?
- 5. 道具變化時重新渲染功能組件
- 6. 道具變化時反應不會重新渲染組件
- 7. React JSX:父組件的重新渲染是否會重新加載子組件?
- 8. React組件不會在狀態更改時重新渲染
- 9. ReactiveVar無法重新渲染React組件
- 10. 無法讓React組件重新渲染
- 11. React/Redux組件不會重新渲染
- 12. React js重新渲染大量組件
- 13. react-redux connect不重新渲染組件,但道具得到更新
- 14. React-redux狀態和道具已更新,但組件不在重新渲染
- 15. 爲什麼無狀態組件在道具不變時重新渲染?
- 16. 當屬性發生變化時,JSF ajax重新渲染組件
- 17. React組件在狀態更改後不重新渲染
- 18. 如何在組件之外修改其道具之後重新渲染React組件
- 19. 儘管使用相同的道具重新渲染組件
- 20. React組件等待所需的道具渲染
- 21. react-redux道具不會渲染組件中的數據
- 22. React Flux - 渲染子組件前等待道具
- 23. React - List Items道具不會進入渲染列表組件
- 24. React重新組合通道道具
- 25. Ember重新渲染組件
- 26. ListView在react-native的狀態改變後不會重新渲染?
- 27. React路由器在狀態改變後不重新渲染
- 28. React原生克隆的子組件不會因爲道具更改而被重新渲染
- 29. React渲染嵌套組件
- 30. React組件渲染空
Tnx for answer,我並不害怕因爲效率低下,但因爲它不會重新渲染! – Mehrdad
@Mehrdad它會,因爲某種原因,它被稱爲React [ive]。 – Pavlo