Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
React.js 消えるライフサイクルメソッドについて
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
takf
October 10, 2019
Programming
160
0
Share
React.js 消えるライフサイクルメソッドについて
takf
October 10, 2019
More Decks by takf
See All by takf
Denoに入門していきなりAleph.jsを触ってみた
takfjp
0
540
Atomic Design とテストの○○な話
takfjp
2
1.9k
Node.jsのアップグレードで気をつけたこと
takfjp
1
2.9k
FARM スタックに触れてみる
takfjp
0
1.7k
React Testing Library の Query について整理してみた
takfjp
0
540
Laravel 初めての業務で遭遇したハマりポイント×2
takfjp
2
3.2k
React で Stateless Functional Component の書き方を盛大に間違えていた話
takfjp
0
450
職歴1年目のフロントエンドエンジニアが インプットとアウトプットに苦しんだ話
takfjp
0
360
meguro.es.pdf
takfjp
0
150
Other Decks in Programming
See All in Programming
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.4k
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
1
420
New "Type" system on PicoRuby
pocke
1
430
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
3.4k
Inside Stream API
skrb
1
620
Oxlintのカスタムルールの現況
syumai
5
980
JavaDoc 再入門
nagise
0
260
Claspは野良GASの夢をみるか
takter00
0
160
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
240
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
190
LLM Plugin for Node-REDの利用方法と開発について
404background
0
160
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.3k
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Ethics towards AI in product and experience design
skipperchong
2
300
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
300
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
200
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Building AI with AI
inesmontani
PRO
1
1k
Evolving SEO for Evolving Search Engines
ryanjones
0
210
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
150
Transcript
React.js 消えるライフサイクルメソッドについて Misoca 秋のLT大会 2019.10.10
登壇者について furuichi (@takfjp) 株式会社カオナビ所属 主にフロントエンド(React)の開発に携わっています
https://corp.kaonavi.jp/recruit/
Reactのバージョンアップでこれから消えるライフサイクル メソッドについてお話しします ・現在のReactのバージョン v16.10.0 Released! (2019/10現在) ・v17 の登場はまだ未定
これまでの主な Breaking Changes v16.3 (2018/03) - New Context API, 新しいライフサイクルメソッド追加
- getDerivedStateFromProps - getSnapshotBeforeUpdate v16.8 (2019/02) - React Hooks が追加! - -> 関数コンポーネントが State を持てるように
目覚ましい進歩と その裏で消えゆく者たち・・・
componentWillMount componentWillRecieveProps componentWillUpdate 消える(予定)ライフサイクルメソッド
componentWillMount -> UNSAFE_componentWillMount componentWillRecieveProps -> UNSAFE_componentWillRecieveProps componentWillUpdate -> UNSAFE_componentWillUpdate v16.9
より接頭辞 UNSAFE_ がないと warning v17 で完全に削除 (後方互換性なし) -> 接頭辞つきであればであればv17でも動作 ??
componentWillUnmount 消えずに残る者 まだまだ現役じゃぞい
- v17 より非同期レンダリングを正式にサポート - React Fiber (コアエンジン)が差分の整合性を保つため - componentWillHoge が何度も呼ばれる
(render() が何度も実 行されてしまう) ことで DOM の整合性が危うくなる なぜ消える?
- 今後も残るライフサイクルメソッドに置き換え - componentWillRecieveProps -> componentDidUpdate など - getDerivedStateFromProps も置き換え策
- 公式曰く「まれなライフサイクルメソッド」らしい … - ライフサイクルメソッドに依存しない実装 - componentWillMount 内の処理をconstructorに移すなど 対策 (1)
リファクタのコストが高い場合: ❯ npx react-codemod rename-unsafe-lifecycles <path> https://github.com/reactjs/react-codemod#rename-unsafe-lifecycles 対策 (2)
コマンドラインからファイルを指定 -> 廃止予定のメソッド名を自動的に UNSAFE_xxx に置換
Thank you!