React の Context の更新による不要な再レンダリングを防ぐ 〜useContext を利用した時に発生する不要な再レンダリングを防ぐ方法に関して〜Reactreact-hooks はじめに React(v16.12.0) の Context の更新による不要な再レンダリングを防ぐ方法についての備忘録です。 useContextフックなどで利用する Context のデメリットとして 「Context を更新したら、その Context を利用しているコンポーネントがすべて再レンダリングされてしまう」 ということが記載されている時がありますが、関数コンポーネントであれば再レンダリングを防げます(クラスコンポーネントでもできるかも)。 ということで、この記事は関数コンポーネントを対象としています。 また、デモは CodeSandbox 上に置いてあります。編集して動作を確認してみる
![React の Context の更新による不要な再レンダリングを防ぐ 〜useContext を利用した時に発生する不要な再レンダリングを防ぐ方法に関して〜 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/37b64be0c5c2cf7080a3dd1fae1d99102608f8f9/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9UmVhY3QlMjAlRTMlODElQUUlMjBDb250ZXh0JTIwJUUzJTgxJUFFJUU2JTlCJUI0JUU2JTk2JUIwJUUzJTgxJUFCJUUzJTgyJTg4JUUzJTgyJThCJUU0JUI4JThEJUU4JUE2JTgxJUUzJTgxJUFBJUU1JTg2JThEJUUzJTgzJUFDJUUzJTgzJUIzJUUzJTgzJTgwJUUzJTgzJUFBJUUzJTgzJUIzJUUzJTgyJUIwJUUzJTgyJTkyJUU5JTk4JUIyJUUzJTgxJTkwJTIwJUUzJTgwJTlDdXNlQ29udGV4dCUyMCVFMyU4MiU5MiVFNSU4OCVBOSVFNyU5NCVBOCVFMyU4MSU5NyVFMyU4MSU5RiVFNiU5OSU4MiVFMyU4MSVBQiVFNyU5OSVCQSVFNyU5NCU5RiVFMyU4MSU5OSVFMyU4MiU4QiVFNCVCOCU4RCVFOCVBNiU4MSVFMyU4MSVBQSVFNSU4NiU4RCVFMiU4MCVBNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9Yzk5NzJkNTUwZmFiYzU4N2ZkMWU5MzkxMmM3YWI0OWI%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBzb2FyZmxhdCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YjlhZjM3N2I3MWQzNThlM2ViNTVlYWU4YjgxYTIwMzg%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Dfa9b1cde812efb5a50df832e88c98497)