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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
340
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
230
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
130
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.2k
Cosmos World Foundation Model Platform for Physical AI
takmin
0
760
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
【Oracle Cloud ウェビナー】[Oracle AI Database + AWS] Oracle Database@AWSで広がるクラウドの新たな選択肢とAI時代のデータ戦略
oracle4engineer
PRO
1
110
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
230
Context Engineeringの取り組み
nutslove
0
320
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
1.8k
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
Designing for Performance
lara
610
70k
The Spectacular Lies of Maps
axbom
PRO
1
520
ラッコキーワード サービス紹介資料
rakko
1
2.2M
Git: the NoSQL Database
bkeepers
PRO
432
66k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
290
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
4 Signs Your Business is Dying
shpigford
187
22k
Code Review Best Practice
trishagee
74
20k
Believing is Seeing
oripsolob
1
53
Documentation Writing (for coders)
carmenintech
77
5.2k
Utilizing Notion as your number one productivity tool
mfonobong
3
220
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Ͱ࣮͍ͯ͠·͢ɻ
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ