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
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
今日から始めるAmazon Bedrock AgentCore
har1101
4
400
Webhook best practices for rock solid and resilient deployments
glaforge
1
280
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
230
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
150
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
130
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
620
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.1k
Data Hubグループ 紹介資料
sansan33
PRO
0
2.7k
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
630
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
350
AI駆動PjMの理想像 と現在地 -実践例を添えて-
masahiro_okamura
1
110
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
160
Featured
See All Featured
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
330
BBQ
matthewcrist
89
10k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Become a Pro
speakerdeck
PRO
31
5.8k
Building the Perfect Custom Keyboard
takai
2
680
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
820
The Limits of Empathy - UXLibs8
cassininazir
1
210
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Statistics for Hackers
jakevdp
799
230k
Testing 201, or: Great Expectations
jmmastey
46
8k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.6k
Context Engineering - Making Every Token Count
addyosmani
9
650
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Ͱ࣮͍ͯ͠·͢ɻ
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ