いくつかの小道具を必要とする News コンポーネントがあり、<Link /> をクリックするたびにそれを作成し、対応するカテゴリの小道具を再レンダリングしたいと考えています。 URL は更新されますが、コンポーネントは再レンダリングされません。
News
<Link />
これらは私のものです <NavLink />
<NavLink />
一意の key を element コンポーネントに追加するだけです。 endcphpcn は、いくつかの異なる props を使用して毎回再レンダリングされます。
key
element
endcphpcn は、いくつかの異なる
を使用して毎回再レンダリングされます。
react-router/react-router-dom 複数のルートでレンダリングする場合でも、同じコンポーネント インスタンスをインストールしたままにしてレンダリングを最適化します。これはパフォーマンスの最適化であり、異なる props 値を渡すためだけに同じコンポーネントをアンインストールして再インストールするプロセスを節約します。つまり、ルートが変更されてもコンポーネントはマウントされたままとなり、依存関係プロパティ値の更新は componentDidUpdate ライフサイクル メソッドまたは useEffect フックで処理される必要があります。
react-router
react-router-dom
componentDidUpdate
useEffect
渡されるルーティングと props に基づくと、この News コンポーネントは category props にいくつかの依存関係を持っています。これは、私が確認した唯一の props が異なるためです。
category
News コンポーネントにはおそらく useEffect フックがあり、この category プロパティに依存して、この異なるプロパティ値に基づいて異なるデータを実行/ロードする必要があります。
が React クラスに基づくコンポーネントの場合、componentDidUpdate メソッドを実装する必要があります。 リーリー さらに、これに基づいて、
リーリー
と URL パスも一致しているように見えるため、ほとんどの場合 :Category を使用して単一のルートをレンダリングすることで、コードをよりわかりやすくすることもできます。をルート パス パラメーターとして使用し、同じ useEffect フック ロジックを適用して、カテゴリ値に依存するロジックを再実行します。 ###例:### リーリー リーリー 同様に、
ほとんどの場合
###例:### リーリー リーリー
がクラス コンポーネントの場合は、適切な
ライフサイクル メソッドを使用し、カスタム withRouter 上位コンポーネント category ルート パス パラメーターが props として挿入されるようにします。 News コンポーネント
上位コンポーネント
ルート パス パラメーターが props として挿入されるようにします。
での React キーの使用は、コンポーネントのアンマウントと再マウントなどの実際の逆アセンブリを伴うため、最後の手段としてのみ使用してください これには、単に更新された prop 値を使用してコンポーネントを再レンダリングするよりも多くの作業が必要になります。
一意の
リーリーkey
をelement
コンポーネントに追加するだけです。endcphpcn は、いくつかの異なる
propsを使用して毎回再レンダリングされます。
react-router
/react-router-dom
複数のルートでレンダリングする場合でも、同じコンポーネント インスタンスをインストールしたままにしてレンダリングを最適化します。これはパフォーマンスの最適化であり、異なる props 値を渡すためだけに同じコンポーネントをアンインストールして再インストールするプロセスを節約します。つまり、ルートが変更されてもコンポーネントはマウントされたままとなり、依存関係プロパティ値の更新はcomponentDidUpdate
ライフサイクル メソッドまたはuseEffect
フックで処理される必要があります。渡されるルーティングと props に基づくと、この
News
コンポーネントはcategory
props にいくつかの依存関係を持っています。これは、私が確認した唯一の props が異なるためです。
###例:### リーリー NewsNews
コンポーネントにはおそらくuseEffect
フックがあり、このcategory
プロパティに依存して、この異なるプロパティ値に基づいて異なるデータを実行/ロードする必要があります。が React クラスに基づくコンポーネントの場合、
categorycomponentDidUpdate
メソッドを実装する必要があります。リーリー
さらに、これに基づいて、と URL パスも一致しているように見えるため、
Newsほとんどの場合
:Category を使用して単一のルートをレンダリングすることで、コードをよりわかりやすくすることもできます。をルート パス パラメーターとして使用し、同じ useEffect フック ロジックを適用して、カテゴリ値に依存するロジックを再実行します。###例:### リーリー リーリー
同様に、がクラス コンポーネントの場合は、適切な
componentDidUpdateライフサイクル メソッドを使用し、カスタム
withRouter
上位コンポーネント
categoryルート パス パラメーターが props として挿入されるようにします。
News
コンポーネントでの React キーの使用は、コンポーネントのアンマウントと再マウントなどの実際の逆アセンブリを伴うため、最後の手段としてのみ使用してください
これには、単に更新された prop 値を使用してコンポーネントを再レンダリングするよりも多くの作業が必要になります。