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
Why React and not jQuery?
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takanori Maeda
May 27, 2016
Technology
0
240
Why React and not jQuery?
社内LT大会用のスライドです。
Takanori Maeda
May 27, 2016
Tweet
Share
More Decks by Takanori Maeda
See All by Takanori Maeda
Why Redux?
maechabin
0
170
モバイルWeb開発最前線 -PWA開発パターン「PRPL」の紹介-
maechabin
0
580
最新フロントエンド事情2016年版
maechabin
1
800
Other Decks in Technology
See All in Technology
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
190
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
110
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
データ民主化のための LLM 活用状況と課題紹介(IVRy の場合)
wxyzzz
2
700
20260204_Midosuji_Tech
takuyay0ne
1
150
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
590
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
1.8k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
460
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
450
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
160
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.3k
Featured
See All Featured
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
How to make the Groovebox
asonas
2
1.9k
So, you think you're a good person
axbom
PRO
2
1.9k
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
410
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2k
Ruling the World: When Life Gets Gamed
codingconduct
0
140
Between Models and Reality
mayunak
1
180
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
910
The Curious Case for Waylosing
cassininazir
0
230
It's Worth the Effort
3n
188
29k
Transcript
Why React? and not jQuery? ίϯϙʔωϯτࢦͳUI։ൃ͕ ͳͥྲྀߦ͍ͬͯΔͷ͔ʁ @maechabin
jQueryਖ਼͠ΜͲ͘ͳ͍Ͱ͔͢ʁ
ྫ͑͜Μͳέʔε
ඇಉظͰݕࡧ݁Ռ͕දࣔ͞ΕΔը໘ ݕࡧ ݅A ݅B ݅C ೖྗʮΩʔϫʔυʯͱબ ͨ͠ʮ݅ʯʹΑͬͯ ݕࡧ݁Ռ͕දࣔ͞ΕΔ
༧͞ΕΔ࣮ґཔ • Ωʔϫʔυ͕ೖྗ͞Ε͍ͯͳ͍࣌ɺݕࡧϘλϯΛԡͤͳ͍Α͏ʹͨ͠ ͍ɻ·ͨೖྗͨ͠ΩʔϫʔυݕࡧϘλϯΛԡͨ͠ޙɺอ͍࣋ͨ͠ɻ • ݅Aͱ݅BΛબͨ࣌͠ಉ͡ϑΥʔϚοτͷݕࡧ݁ՌΛදࣔ͢Δ ͕ɺ݅CΛબͨ࣌͠ɺҟͳͬͨϑΥʔϚοτͷݕࡧ݁ՌΛදࣔ͞ ͍ͤͨɻ • ݅CΛબ͚ͨ࣌ͩ͠ɺݕࡧ݁Ռ͔Βͦͷ༰ΛฤूͰ͖ΔΑ͏ʹ
͠ɺฤूͨ͠Βͦͷ෦͚ͩഎܠ৭Λม͑ɺ͞Βʹݕࡧ݁ՌͷҰ൪্ʹ ද͍ࣔͤͨ͞ɻ • ݕࡧϘλϯΛͳͯ͘͠ɺΩʔϫʔυ݅Λมߋ͢Δʹɺݕࡧ݁Ռ͕ දࣔ͞ΕΔΑ͏ʹ͍ͨ͠ɻ Etc…
jQueryΛͬͯͲ͏࣮ํ͢Δ͔ ॠ࣌ʹΠϝʔδͰ͖·͔͢ʁ
jQuery͠ΜͲ͍Ͱ͢ΑͶ…
React͕͍͍Αͱ͍͏Λ લஔ͖͜Ε͘Β͍ʹͯ͠ ͜Ε͔Β͍͖ͯ͠·͢ ͱ͍͏͜ͱͰ
ͯ͞ɺReactͬͯԿʁ
Reactͱ • 2013͔ΒFacebook͕த৺ͱͳͬͯ։ൃ͍ͯ͠ΔUI ߏஙͷͨΊͷJavaScriptϥΠϒϥϦ • AngularͳͲͷϑϨʔϜϫʔΫͱಉʹѻΘΕͨΓ͠ ͍ͯΔ͕ɺ͋͘·ͰViewΛߏங͢ΔͨΊͷͷ • େखͷWebαʔϏεถYahoo!ɺAirBnBɺNetflixͳͲ͕ ੵۃతʹ࠾༻
• ෦Ͱঢ়ଶΛཧ͠ɺঢ়ଶʹมߋ͕͋ΔͨͼʹView શମΛϨϯμϦϯά͢Δ߽తͳΞϓϩʔν • SPAΛ࣮͢Δࡍʹཱͭ
Reactͷಛ 1. ίϯϙʔωϯτࢦ 2. VirtualDOM 3. σʔλͷྲྀΕҰํͷΈ https://facebook.github.io/react/
ίϯϙʔωϯτࢦ • ReactͰɺViewͷ֤ύʔπΛίϯϙʔωϯτ୯ ҐͰ࡞ΓɺίϯϙʔωϯτΛΈ߹ΘͤͯView Λ࣮͢Δ ݕࡧ ݅A ݅B ݅C
ίϯϙʔωϯτࢦʹΑΓ • React͕෦ʹอ͍࣋ͯ͠Δʮঢ়ଶʯʹ߹Θͤͯ ίϯϙʔωϯτΛΈ߹ΘͤΔ͜ͱͰɺʮঢ়ଶʯ ʹ߹ΘͤͨViewͷߏங͕͘͢͠ͳΔ • ෦୯ҐͰॻ͘ͷͰɺ୭Ͱ؆୯ʹॻ͚Δ • ΧϓηϧԽʹΑΔอकੑ͕ߴ·Δ •
·ͨɺෳਓͰͷ։ൃςετ͕͘͢͠ͳΔ ͱ͍ͬͨϝϦοτ͋Δ
VirtualDOM • ReactͷίϯϙʔωϯτɺVirtualDOMͱ͍͏Ծ తͳDOMΛ࣮ͬͯ͠ɺ࠷ऴతʹϒϥβ ʹϨϯμϦϯά͢Δ࣌ʹຊͷDOMʹม͢Δ ঢ়ଶAͷ࣌ͷ ίϯϙʔωϯτ ʢVirtualDOMʣ ঢ়ଶBͷ࣌ͷ ίϯϙʔωϯτ
ʢVirtualDOMʣ ঢ়ଶAͷ࣌ͷ View ʢ࣮DOMʣ React ϒϥβ ঢ়ଶAͷ࣌ͷDOMΛ ϨϯμϦϯά ʢVirtualDOMΛ࣮DOMʹมʣ
VirtualDOM͍ ঢ়ଶAͷ࣌ͷ ίϯϙʔωϯτ ʢVirtualDOMʣ ঢ়ଶBͷ࣌ͷ ίϯϙʔωϯτ ʢVirtualDOMʣ ঢ়ଶBͷ࣌ͷ View ʢ࣮DOMʣ
• DOMͷશͯΛϨϯμϦϯά͍ͯ͠ΔΑ͏ʹৼͬ ͍ͯΔ͕ɺ࣮ࡍίϯϙʔωϯτΛ࣮DOMʹϨϯ μϦϯά͢Δࡍʹɺલޙͷঢ়ଶΛൺֱ͠ɺࠩ ͷΈߋ৽͍ͯ͠ΔͷͰɺ͔ͳΓߴɻ ঢ়ଶAͷ࣌ͷ View ʢ࣮DOMʣ ϒϥβ ϒϥβ React લޙͷVirtualDOMΛൺֱ ࠩͷΈ ߋ৽
Ұํੑͷσʔλϑϩʔ • ReactͷVirtualDOMɺrootίϯϙʔωϯτΛ ͱͨ͠πϦʔߏʹͳ͓ͬͯΓɺσʔλ ͔Βࢠʹ͔͠ྲྀΕͳ͍ɻࢠ͔ΒʹྲྀΕͳ ͍ɻʮঢ়ଶʯඞͣrooίϯϙʔωϯτ͕࣋ͭɻ × Rootίϯϙʔωϯτʢঢ়ଶΛ࣋ͭʣ ίϯϙʔωϯτ ʢঢ়ଶΛ࣋ͨͳ͍ʣ
ίϯϙʔωϯτ ʢঢ়ଶΛ࣋ͨͳ͍ʣ Rootίϯϙʔωϯτ ͷอ࣋͢Δʮঢ়ଶʯ ʹΑͬͯͦͷԼʹඥ ͘ίϯϙʔωϯτ ͕͞ΕΔ VirtualDOM
ҰํੑσʔλϑϩʔͷϝϦοτ • σʔλඞ͔ͣΒࢠʹ͔͠ྲྀΕͳ͍ͷͰɺσʔ λͷྲྀΕ͕Ѳ͘͢͠ɺݟ௨͠ͷྑ͍ઃܭͱ ͳΔ • Rootͷঢ়ଶͷΈͰίϯϙʔωϯτશମ ʢVirtualDOMʣͷߋ৽͕Ͱ͖ΔͷͰɺViewͷঢ় ଶཧָ͕ʹͳΔ •
ΞϓϦέʔγϣϯ͕ڊେʹͳͬͯɺഁ͠ ʹ͍͘
Reactɺ͜Μͳײ͡Ͱ͢
Α͘Α͘ݟͯΈΔͱ
ঢ়ଶʹదͨ͠HTMLΛు͖ग़͢
·͞ʹ αʔόʔαΠυͰ͍ͬͯΔ͜ͱͱಉ͡
͜Ε͕ࠓϑϩϯτΤϯυͰى͖͍ͯΔ ύϥμΠϜγϑτͰ͢
React
ͭͮ͘…
αϯϓϧͷ͝հ http://bit.ly/1Ua13pN Moba8.netͷηϧϑόοΫϒοΫϚʔΫػೳ ReactͱFacebook/FluxͰ࣮͍ͯ͠·͢ɻ
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ