akr4 / react-usereducer-usecontext-example

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

react-usereducer-usecontext-example

子コンポーネントの無駄な再レンダリングを避けるためにuseReducerとコンテキストを利用する例。

reducerを使わずuseStateuseCallbackしたハンドラーをコンテキストに渡すことでも同等の処理を実現可能だが、コンテキストに操作が複数あるとそれぞれにuseCallbackする必要がありコードが長くなる。reducerの方が結果としてすっきりするので基本的にuseReducerを使う方が良さそう。

注意点として、useReducerが返すdispatchは一意であることが保証されているが、Context.Providerに渡すvaluedispatch以外も含める場合にはuseMemoでメモ化しておく必要がある。

React Developer ToolsのHighlight updates when components render.を有効にすると再レンダリングの様子がよくわかる。

About


Languages

Language:TypeScript 62.0%Language:HTML 25.7%Language:CSS 12.4%