私はReactのライフサイクルメソッドに関する多数の記事を読んできました。私は苦労している質問に答えられないようです。アプリケーションはその内部のいくつかのコンポーネントがありライフサイクルのライフサイクルの手法。アプリはいつスクリーンにレンダリングされますか?
<ApolloProvider client={client}>
<BrowserRouter>
<App />
</BrowserRouter>
</ApolloProvider>
:
私はレンダリング私が書いた、比較的シンプルなアプリがありますように
ReactDOM.render(<Root />, document.getElementById('Root'))
ルートが見えます。
Iは、各コンポーネント内componentDidMount
方法をconsole.logs
を配置しており、次のようにそれらがログ順序である:
- 成分1(2子)
- 成分2(APPの子)
- アプリ( BrowserRouterの子)
- BrowserRouter(ApolloProviderに子)ルートへ
- ApolloProvider(子供)
私の質問は、たとえばコンポーネント2がレンダリングされ、componentDidMount
が実行されると、実際のブラウザDOMが更新される前にコンポーネントが画面に表示されるか、すべてのコンポーネントが最初に仮想DOMにマウントされなければならないということです?
Reactアプリケーションは実際にブラウザDOMをいつ更新しますか?
コンポーネントのDOM要素の実際の大きさは 'componentDiDMount'の内部で分かっているので、私はこの時点でDOM全体が構築されていると思います。 DOMの更新前にすべてのコンポーネントをマウントする必要があります。 –