Slide 1

Slide 1 text

3FBDUೖ໳

Slide 2

Slide 2 text

3FBDUͱ͸ w %FDMBSBUJWF એݴత  w $PNQPOFOU#BTFE ίϯϙʔωϯτϕʔε  w -FBSO0ODF 8SJUF"OZXIFSF Ͳ͜Ͱ΋࢖͑Δ 7JFXྖҬͷ+BWBTDSJQUϑϨʔϜϫʔΫ

Slide 3

Slide 3 text

%FDMBSBUJWF એݴత ϏϡʔͷඳըॲཧΛఆٛ͢ΔͷͰ͸ͳ͘ɺϏϡʔͷ༗ Γ༷Λએݴͱͯ͠ఆٛ͢Δɻ Ϗϡʔͷঢ়ଶมߋʹΑΔ͸࠶ϨϯμϦϯά͸3FBDU͕ ޮ཰తʹ࣮ߦɻ એݴͱͯ͠ͷϏϡʔ͸ίʔυ͔Β࣮ߦ࣌ͷಈ࡞͕༧ଌ ͠΍͘͢ɺσόοά΋༰қɻ

Slide 4

Slide 4 text

$PNQPOFOU#BTFE ίϯϙʔωϯτϕʔε ΧϓηϧԽ͞Εͨίϯϙʔωϯτ͕ࣗ਎ͷঢ়ଶΛ؅ཧ͢ Δɻ ίϯϙʔωϯτ͸+BWBTDSJQUͰهड़͢ΔͷͰɺ)5.-ς ϯϓϨʔτͱ͸ҧ͍ɺ+BWBTDSJQUͷσʔλܗࣜ ਺஋ɾจ ࣈྻͱ͍ͬͨσʔλܕɺ഑ྻɾࣙॻ౳ ͕ͦͷ··࢖͑Δɻ

Slide 5

Slide 5 text

-FBSO0ODF 8SJUF"OZXIFSF Ͳ͜Ͱ΋࢖͑Δ .PEFM΍$POUSPMMFS౳ͷ࿮૊ΈΛલఏͱ͠ͳ͍ͷͰऔ Γճ͕͠Α͘ɺଞͷ'8ͱͷ૊Έ߹Θͤࣗࡏɻ αʔόαΠυ OPEF Ͱ΋ಈ͖ɺωΠςΟϒΞϓϦ΋ ॻ͚Δ 3FBDU/BUJWF ɻ

Slide 6

Slide 6 text

+49 import React, { Component } from 'react'; import ReactDOM from 'react-dom'; // ίϯϙʔωϯτ class App extends Component { render() { return ; } } // Stateless Functional Component const Hello = () =>
Hello React!!!
; // initialize ReactDOM.render(, document.getElementById('app')); +BWBTDSJQU֦ுͷλάߏจɻ+BWB4DSJQUF9UFOUIJPO $PNQPOFOU͸ ಠࣗλάͷΑ͏ͳ΋ͷ

Slide 7

Slide 7 text

)FMMP8PSME import React, { Component } from 'react'; import ReactDOM from 'react-dom'; // Component class App extends Component { render() { return ; } } // Stateless Functional Component const Hello = () =>
Hello React!!!
; // initialize ReactDOM.render(, document.getElementById('app')); React
JOEFYKTY JOEFYIUNM

Slide 8

Slide 8 text

1SPQFSUZͱ4UBUF 1SPQFSUZ 4UBUF w ίϯϙʔωϯτͷҾ਺ w ஋͸มߋ͞Εͳ͍ w ίϯϙʔωϯτ͕಺෦ʹ อ࣋͢Δঢ়ଶ w ஋͸มߋ͞ΕΔ

Slide 9

Slide 9 text

ίϯϙʔωϯτؒͷσʔλͷड͚౉͠ ਌͔Βࢠ ࢠ͔Β਌ 1SPQFSUZͱͯ͠౉͢ɻ  ਌͕ࢠʹࣗΒͷ4UBUFΛૢ ࡞͢ΔϝιουΛ౉͢ɻ  ࢠ͕਌ͷ4UBUFΛૢ࡞͢Δ ϝιουΛݺͼग़͢ɻ

Slide 10

Slide 10 text

ίʔυαϯϓϧ 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Λૢ࡞͢Δϝιου

Slide 11

Slide 11 text

ίʔυαϯϓϧ render() { const { message } = this.state; return (
{message}
); } } // Child Component const PlusMinusButton = ({ plusMinus, changeCount }) => { return {plusMinus}; }; // Initialization ReactDOM.render(, document.getElementById('app')); "QQͷଓ͖ 1SPQFSUZͷड͚౉͠ ਌͔Β౉͞ΕͨϝιουΛΠϕϯτϦεφʔͱͯ͠ొ࿥ ਌͔Β౉͞Εͨ PSΛϘλϯϥϕϧͱͯ͠ར༻ IUUQTHJUIVCDPNZULBZBNVSBTUBSUSFBDUTUBUF

Slide 12

Slide 12 text

+BWB4DSJQUΛֶͿ 3FBDU(SBQI2-ΞϓϦ։ൃक़ ຖिਫ༵೔ɿ ։࠵৔ॴɿ ࢀՃඅɿ ʙʢ։৔ʣ ΪʔΫΦϑΟεܙൺण ԁ IUUQTNFUFPSGBODPOOQBTTDPN

Slide 13

Slide 13 text

5XJUUFSɿ (JU)VCɿ ϒϩάɿ !EBJ@TIJ IUUQTHJUIVCDPNEBJTIJ IUUQTNFEJVNDPN!EBJ@TIJ ओ࠵ऀ঺հ

Slide 14

Slide 14 text

3FBDUɿ 3FEVYɿ (SBQI2-ɿ &4 શճ ɿ 7VFKTɿ /FYUKTɿ 3FBDU/BUJWFɿ 8FCQBDLɿ IUUQCBTJDSFBDUBYMJHIUDPNIUNM IUUQCBTJDSFEVYBYMJHIUDPNIUNM IUUQCBTJDXFCUFDIBYMJHIUDPNHSBQIRMIUNM IUUQCBTJDXFCUFDIBYMJHIUDPNFTIUNM IUUQCBTJDXFCUFDIBYMJHIUDPNWVFKTIUNM IUUQCBTJDXFCUFDIBYMJHIUDPNOFYUKTIUNM IUUQCBTJDXFCUFDIBYMJHIUDPNDSOBIUNM IUUQCBTJDXFCUFDIBYMJHIUDPNXFCQBDLIUNM ࣗशڭࡐ