Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Reactの再レンダリングの最適化
Search
horisan
December 04, 2021
Programming
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Reactの再レンダリングの最適化
Reactの再レンダリングの最適化について勉強したものになります。
horisan
December 04, 2021
Other Decks in Programming
See All in Programming
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
Event is what happens
moro
2
770
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
190
AmebaブログはKMPから卒業します
kmars0605
0
180
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
180
The Rails Doctrine Decade
koic
2
590
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
Jetpack Compose Mechanisms
skydoves
3
820
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
420
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Documentation Writing (for coders)
carmenintech
77
5.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Become a Pro
speakerdeck
PRO
31
6.3k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
280
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Transcript
Reactの再レンダリングの最適化
Reactの再レンダリングとは?
React は変化があった要素と以前にレンダリングされた要素を比較することで、 実際の DOM の更新が必要かを判断します。それらが等しくない場合、React は DOM を更新します Reactの再レンダリング
Reactが再レンダリングするタイミングとは?
Reactが再レンダリングするタイミング • stateが更新された時 • propsが更新された時 • 親コンポーネントが再レンダリングされた時
stateが更新された時 inputで毎回1文字入力される度に、 stateが更新されるため、再レンダリングが行われる
propsが更新された時 count upボタンを押下する度に、 propsが変更され再レンダリングされる
親コンポーネントが再レンダリングされた時 親コンポーネントが再レンダリングされているタイミングで 子コンポーネントも再レンダリングされている
再レンダリングを最適化する方法 1. React.memo 2. useCallback 3. useMemo
コンポーネントのメモ化 Propsに変更がない限り、メモ化したコンポーネントでは再レンダリングされないようになっている React.memo メモ化・・・キャッシュみたいなもの。毎回、同じものを読み込ませないようにする。 https://yukimasablog.com/memoization
React.memo
関数のメモ化 React.memoでメモ化したコンポーネントにuseCallbackでメモ化した関数を Props として渡すことで、コンポーネン トの不要な再レンダリングをスキップすることができる。 useCallback
useCallback 構文:useCallback(関数の処理, 依存配列) ※第2引数の引数の値が変化すると、関数が再生成され再レンダリングが起こる。つまり第 2引数の値が 変わらない限り、propsを渡している子コンポーネントは再レンダリングされない。
値(変数)のメモ化 関数によってメモ化された値を返す useMemo
useMemo 構文:useMemo(関数の処理, 依存配列) ※第2引数の引数の値が変化すると、関数が再生成され再レンダリングが起こる。つまり第 2引数の値が 変わらない限り、関数は再度読み込まれない。 1回しか関数を読み込ませない場合は、空の配列を設定 する
ライブコーディングやってみよう!
まとめ • React.memo → Propsに変更がない限り、メモ化したコンポーネントでは再レンダリングされない • useCallback → React.memoでメモ化したコンポーネントにuseCallbackでメモ化した関数を Props として渡 すことで、コンポーネントの不要な再レンダリングをスキップ
• useMemo → 関数によってメモ化された値を返す。値が変わらない場合は、再レンダリングされない