Closed syunto07ka closed 4 years ago
簡単にまとめると
component
に値を渡すと、React.createElementでcomponentが作成されるので、ただコンポーネントをupdateしたいときだけでも、既存のコンポーネントは捨てられ新しいコンポーネントが作成されてしまうため、良くない(<-ここ曖昧)。https://reacttraining.com/react-router/core/api/Route/component
match
(ルーティング情報)の内容を元に表示するか否かを決められるrender
と同じhttps://reacttraining.com/react-router/web/api/Route/children-func
@syunto07ka
ちょっと難しかったですかね?
結論から書いてしまうと、単純にchildren
で渡してしまって良いはずです。
children(function)
ではないのが注意です!
Route
コンポーネントに子コンポーネントを渡す方法は、4つあるみたいですね。
children
component
render
children(function)
render
についてはdeprecatedしているのでここでは触れません。
component
で渡す場合は、全てのroute props
が子コンポーネントに渡されます。
(https://reacttraining.com/react-router/web/api/Route/component)
children(function)
の場合は、component
で対応しきれない場合に使うっぽいですね。
これは始めて知りました、が、children
と明示的に書く書き方はどーなんですかね?
children
の場合はroute props
が渡されないです。
そのため、子コンポーネントがclass構文の場合route props
に依存しない書き方だとパフォーマンスが良かったわけですね。
ところが、hooksの導入によりわざわざroute props
を介して子コンポーネントを呼び出す必要がなくなったため、全てchildren
による呼び出し方で十分、というのが自分の認識です。
これとかわかりやすいですね。
なので今回の場合はこの書き方で十分ですね。
react-router-domに関してまとめる
rel https://github.com/Syunto07ka/jewelry_box/pull/49#discussion_r407238778
主にpropsの
component
とchildren
の違いについてまとめる