2017-08-09 40 views
0

預先存在的對象(DOM和虛擬DOM對象)是否被完全銷燬以便它們不佔用任何內存?由於ReactJS重新呈現,預先存在的對象會發生什麼?

爲了理解,我在問,如果安全或不經常更改「狀態」和「道具」,則使用ReactJS。

+0

更改狀態和道具基本上是React應用程序的功能。 – jmargolisvt

+0

@jmargolisvt是的,我知道。我相信這個問題很簡單,但讓我解釋一下。如你所知,當你改變狀態哈希時,渲染函數將重新運行。如果您在渲染函數中生成了很多組件,該怎麼辦?他們是重新生成的,沒關係。以前生成的呢?他們是否佔用任何內存,或者在重新渲染通過時清除它們?就是那個問題。 –

+0

比這更復雜。我認爲這將回答你的問題:https://facebook.github.io/react/docs/reconciliation.html – jmargolisvt

回答

1

React是操縱DOM的一個非常強大的工具。它爲其組件使用不同的生命週期,因此除非絕對需要,否則它不會觸及組件。你不需要擔心內存管理,你可以完全改變狀態,並以你需要的方式在你的應用中傳遞道具,而不必擔心性能。

國家是什麼幫助管理組件的生命週期,改變狀態觸發重新渲染,這幾乎是大多數重新渲染髮生的地方。所以它是「安全」使用React中的狀態,它是一個「功能」您需要使用告訴反應來管理您的組件。總而言之,您不需要擔心性能,React會爲您提供這方面的幫助,除非您正在創建一個完整的遊戲/應用程序,每毫秒重新渲染數千個組件。那時候我會擔心表演。

相關問題