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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
yayamura
December 25, 2017
Programming
390
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
React入門
yayamura
December 25, 2017
Other Decks in Programming
See All in Programming
高専キャリア LT 発表内容
crysta1221
6
5.6k
Intent as Code
shoppingjaws
6
740
Foundry Localでエージェント開発
seosoft
0
170
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
280
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
430
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
130
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
2
270
AI × TiDD / 2026.09.05 Redmine 大阪
tokudiro
1
120
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
490
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
130
Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python
ra0kley
0
180
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
A Tale of Four Properties
chriscoyier
163
24k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.3k
WCS-LA-2024
lcolladotor
0
820
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
530
How to make the Groovebox
asonas
2
2.4k
Transcript
3FBDUೖ
3FBDUͱ w %FDMBSBUJWF એݴత w $PNQPOFOU#BTFE ίϯϙʔωϯτϕʔε w
-FBSO0ODF 8SJUF"OZXIFSF Ͳ͜Ͱ͑Δ 7JFXྖҬͷ+BWBTDSJQUϑϨʔϜϫʔΫ
%FDMBSBUJWF એݴత ϏϡʔͷඳըॲཧΛఆٛ͢ΔͷͰͳ͘ɺϏϡʔͷ༗ Γ༷Λએݴͱͯ͠ఆٛ͢Δɻ Ϗϡʔͷঢ়ଶมߋʹΑΔ࠶ϨϯμϦϯά3FBDU͕ ޮతʹ࣮ߦɻ એݴͱͯ͠ͷϏϡʔίʔυ͔Β࣮ߦ࣌ͷಈ࡞͕༧ଌ ͘͢͠ɺσόοά༰қɻ
$PNQPOFOU#BTFE ίϯϙʔωϯτϕʔε ΧϓηϧԽ͞Εͨίϯϙʔωϯτ͕ࣗͷঢ়ଶΛཧ͢ Δɻ ίϯϙʔωϯτ+BWBTDSJQUͰهड़͢ΔͷͰɺ)5.-ς ϯϓϨʔτͱҧ͍ɺ+BWBTDSJQUͷσʔλܗࣜ ɾจ ࣈྻͱ͍ͬͨσʔλܕɺྻɾࣙॻ ͕ͦͷ··͑Δɻ
-FBSO0ODF 8SJUF"OZXIFSF Ͳ͜Ͱ͑Δ .PEFM$POUSPMMFSͷΈΛલఏͱ͠ͳ͍ͷͰऔ Γճ͕͠Α͘ɺଞͷ'8ͱͷΈ߹Θͤࣗࡏɻ αʔόαΠυ OPEF Ͱಈ͖ɺωΠςΟϒΞϓϦ ॻ͚Δ 3FBDU/BUJWF
ɻ
+49 import React, { Component } from 'react'; import ReactDOM
from 'react-dom'; // ίϯϙʔωϯτ class App extends Component { render() { return <Hello />; } } // Stateless Functional Component const Hello = () => <div>Hello React!!!</div>; // initialize ReactDOM.render(<App/>, document.getElementById('app')); +BWBTDSJQU֦ுͷλάߏจɻ+BWB4DSJQUF9UFOUIJPO $PNQPOFOU ಠࣗλάͷΑ͏ͳͷ
)FMMP8PSME import React, { Component } from 'react'; import ReactDOM
from 'react-dom'; // Component class App extends Component { render() { return <Hello />; } } // Stateless Functional Component const Hello = () => <div>Hello React!!!</div>; // initialize ReactDOM.render(<App/>, document.getElementById('app')); <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>React</title> </head> <body> <div id="app" /> </body> </html> JOEFYKTY JOEFYIUNM
1SPQFSUZͱ4UBUF 1SPQFSUZ 4UBUF w ίϯϙʔωϯτͷҾ w มߋ͞Εͳ͍ w ίϯϙʔωϯτ͕෦ʹ อ࣋͢Δঢ়ଶ
w มߋ͞ΕΔ
ίϯϙʔωϯτؒͷσʔλͷड͚͠ ͔Βࢠ ࢠ͔Β 1SPQFSUZͱͯ͢͠ɻ ͕ࢠʹࣗΒͷ4UBUFΛૢ ࡞͢ΔϝιουΛ͢ɻ ࢠ͕ͷ4UBUFΛૢ࡞͢Δ ϝιουΛݺͼग़͢ɻ
ίʔυαϯϓϧ import React, { Component } from 'react'; import ReactDOM
from 'react-dom'; // Parent Component class App extends Component { constructor() { super(); this.state = { messageBase: 'Hello React', message: 'Hello React!', count: 1, }; this.incrementCount = this.incrementCount.bind(this); this.decrementCount = this.decrementCount.bind(this); } // Handler incrementCount() { const { messageBase, count } = this.state; const nxCount = count + 1; this.setState({ ...this.state, // Spread Properties message: messageBase + '!'.repeat(nxCount), count: nxCount, }); } decrementCount() { const { messageBase, count } = this.state; const nxCount = count > 0 ? count - 1 : 0; this.setState({ ...this.state, message: messageBase + '!'.repeat(nxCount), count: nxCount, }); } ଓ͘ 4UBUFͷॳظԽ ࢠʹ͢4UBUFΛૢ࡞͢Δϝιου
ίʔυαϯϓϧ render() { const { message } = this.state; return
( <div> <div>{message}</div> <PlusMinusButton plusMinus={'+'} changeCount={this.incrementCount} /> <PlusMinusButton plusMinus={'-'} changeCount={this.decrementCount} /> </div> ); } } // Child Component const PlusMinusButton = ({ plusMinus, changeCount }) => { return <button onClick={changeCount}>{plusMinus}</button>; }; // Initialization ReactDOM.render(<App/>, document.getElementById('app')); "QQͷଓ͖ 1SPQFSUZͷड͚͠ ͔Β͞ΕͨϝιουΛΠϕϯτϦεφʔͱͯ͠ొ ͔Β͞Εͨ PSΛϘλϯϥϕϧͱͯ͠ར༻ IUUQTHJUIVCDPNZULBZBNVSBTUBSUSFBDUTUBUF
+BWB4DSJQUΛֶͿ 3FBDU(SBQI2-ΞϓϦ։ൃक़ ຖिਫ༵ɿ ։࠵ॴɿ ࢀՃඅɿ ʙʢ։ʣ ΪʔΫΦϑΟεܙൺण ԁ IUUQTNFUFPSGBODPOOQBTTDPN
5XJUUFSɿ (JU)VCɿ ϒϩάɿ !EBJ@TIJ IUUQTHJUIVCDPNEBJTIJ IUUQTNFEJVNDPN!EBJ@TIJ ओ࠵ऀհ
3FBDUɿ 3FEVYɿ (SBQI2-ɿ &4 શճ ɿ 7VFKTɿ /FYUKTɿ 3FBDU/BUJWFɿ 8FCQBDLɿ
IUUQCBTJDSFBDUBYMJHIUDPNIUNM IUUQCBTJDSFEVYBYMJHIUDPNIUNM IUUQCBTJDXFCUFDIBYMJHIUDPNHSBQIRMIUNM IUUQCBTJDXFCUFDIBYMJHIUDPNFTIUNM IUUQCBTJDXFCUFDIBYMJHIUDPNWVFKTIUNM IUUQCBTJDXFCUFDIBYMJHIUDPNOFYUKTIUNM IUUQCBTJDXFCUFDIBYMJHIUDPNDSOBIUNM IUUQCBTJDXFCUFDIBYMJHIUDPNXFCQBDLIUNM ࣗशڭࡐ