SlideShare uma empresa Scribd logo
1 de 65
Baixar para ler offline
React 入門
 シマブー
・琉球大学 産業経営学科
・CODEBASE 1期
・趣味:アニラジ、ランニング
・最近JSが好き
・雑魚だけど、フロントもバッ
クもインフラもやってみたい
しまぶーの目標
・Reactをフワっと理解してもらう。
・Reactに興味を持ってもらう。
もくじ
1. Reactとは
2. Reactの特徴
3. プロジェクトを作ろう
4. JSXとは
5. componentとは
6. Reduxとは
1. Reactとは
2. Reactの特徴
3. プロジェクトを作ろう
4. JSXとは
5. componentとは
6. Reduxとは
Reactとは
Facebookが開発した
 アプリケーションのUIを実装するための
             JSライブラリー
Facebook, slack, Qiitaなどで使われているよ!
1. Reactとは
2. Reactの特徴
3. プロジェクトを作ろう
4. JSXとは
5. componentとは
6. Reduxとは
Reactの特徴
1. コンポーネント指向
2. 仮想DOM
コンポーネント指向とは
コンポーネント = UIを部品化したもので
ページを構成する
← つまり、こういうこと
でも、見た目は今までと一緒じゃん!
            って思うかもしれませんが
コンポーネント(部品)ごとに別のファイ
ルで作って、使いたいところで呼び出すと
いった使い方ができる。
今までと違うところ
コンポーネント指向のメリット
・コードが切り分けられているので
       小さな単位でコードを考えられる
・見るべきところがハッキリするので
      コードを理解しやすく保持しやすい
・デザインの再利用が簡単
仮想DOMとは
・JSのオブジェクトにより
      仮想的に作られたDOM
・変更に強く構築が速いので、表示が速い
なんで仮想DOMは速いの?
変更
変更(ページの遷移とか)
表示
表示
DOM
仮想DOM DOM
再構築
変更部分だけ構築
もっと仮想DOMを知りたい人は
リアルなDOMはなぜ遅いのか
VirtualDOMの仕事ってなに?
あと一つの資料にリンク載っています
ここまでで何か質問ありますか?
(答えられるとは言っていない..)
1. Reactとは
2. Reactの特徴
3. プロジェクトを作ろう
4. JSXとは
5. componentとは
6. Reduxとは
HackMDの資料へ!
1. Reactとは
2. Reactの特徴
3. プロジェクトを作ろう
4. JSXとは
5. componentとは
6. Reduxとは
JSXとは
• JavaScriptXMLの略で、JSの拡張言語。
• Reactを用いてHTMLを出力する際に、書き
手が直感的に書きやすいようにカスタマイズ
された言語。
言葉で言っても分かりづらいので
コードを見比べてみよう!
ここでさらに便利な機能!
JSをJSXの中に含められる!
注意事項!
・タグにclassをつけるときは
        ClassNameで指定する
・returnで返せる親タグは一つ
JSXを使うとHTML風に書くことができるので
見やすい、書きやすい、すごい嬉しい
JSXのまとめ
ここまでで何か質問ありますか?
(答えられるとは..)
1. Reactとは
2. Reactの特徴
3. プロジェクトを作ろう
4. JSXとは
5. componentとは
6. Reduxとは
Componentとは
• Reactで表示する部品のこと。
• 表示する内容、必要なデータ、処理
をひとまとめにしたもの。
コンポーネントの種類
•Classコンポーネント
•関数コンポーネント
コンポーネントの種類
•Classコンポーネント
•関数コンポーネント
コンポーネントの種類
•Classコンポーネント
•関数コンポーネント
コンポーネントを使う上で押さえておくべき概念
•コンポーネントの属性props
•コンポーネント内の値の保管庫state
props
•親子コンポーネント間のデータ受け渡し
•読み取り専門で変更はできない
1. Userという関数コンポーネント(親)を作る
2. Userにname属性、email属性を持たせる
3. Userを描画する関数コンポーネントAppを作る
4. Appコンポーネント内で、Userコンポーネント
(子)を呼び出し、描画の際にname属性、email
属性に具体的な値を持たせる。
やること
state
•コンポーネント内での情報保持
•変更可能(但し、直接変更はNG)
•変更する際はコツがいる(setState)
やること
1. Counterクラスコンポーネントを作る
2. CounterをConstructorで初期化
3. 初期化の際にstateの設置
4. countUpというstateを更新するメソットを作る
5. renderでstateの値を表示する
6. countUpメソットを実行するボタンを作る
Counterを別ファイルに!
1. App.jsと同じ階層にCounter.jsを作る
2. Counter.jsにCounter Classを移動
3. Counter Classをexport
4. App.jsでCounter Classをimport
ここまでで何か質問ありますか?
(答えられ..)
休憩(10分)
1. Reactとは
2. Reactの特徴
3. プロジェクトを作ろう
4. JSXとは
5. componentとは
6. Reduxとは
Redux Set Up
Reduxとは
そのアプリケーション内で
    共通で扱う値の総合管理システム
component
componentcomponent
componentcomponentcomponent
component
Reduxがないとき…
component
componentcomponent
componentcomponentcomponent
component
Reduxがあるとき!!
store
Reduxの仕事
1. 共通の値の保存場所storeの管理。
2. 管理というのは、
• storeの用意
• 各componentでのstoreの呼び出し
• storeの更新
ここから新しい単語がガンガン出てくるので
その役割と書き方をしっかり覚えてね ^_^
Reduxの構成要素
A. state … storeに入っている値
B. store … 共通データの保管庫
C. provider … storeを各componentに受け
渡す仕組み
D. reducer … stateを変更する仕組み
E. Action … アプリケーションで何が起きたか
を示すデータ
これからやること
さっき作ったcounterを
Reduxに置き換える
これからの流れ
1.Actionを用意
2.reducerの用意
3.storeの用意
4.stateとActionの紐付け
1.Actionを用意
2.reducerの用意
3.storeの用意
4.stateとActionの紐付け
アプリケーションで何が起きたかを示すデータ
※実際の処理ではなくそのデータです。
正直こう言われても意味わからないと思うので
書いて覚えていきましょう!
Actionとは
Actionの用意手順
1. src/actionsを作る
2. actions/index.jsを作る
3. index.jsにactionを書いていく
4. countUp,coutDownのActionを書く
5. それぞれのActionをexportする
1.Actionを用意
2.reducerの用意
3.storeの用意
4.stateとActionの紐付け
reducerとは
Action発生の際に
そのActionのtypeに応じて、
stateをどのように変化させるか
を定義する場所。
reducerの用意の手順
1. src/reducers/index.jsの作成
(アプリ全体のreducerを結合する場所)
2. src/reducers/Count.jsを作成
(COUNTUP/COUNTDOWNが行うstateの変更を記述)
1.Actionを用意
2.reducerの用意
3.storeの用意
4.stateとActionの紐付け
storeとは
• 共通データの保管庫
• アプリケーションに一つしかないもの
• どのコンポーネントからも呼び出せる
storeの用意の手順
1. src/index.jsを編集
2. createStoreをimport
3. prodiverをimport
4. reducerをimport
5. createStoreを使って、storeを定義
6. Providerを使って、storeを各コンポー
ネントから参照できるようにする。
1.Actionを用意
2.reducerの用意
3.storeの用意
4.stateとActionの紐付け
紐付けの手順
connect関数を使って、state、action、
componentの紐付けを行う。
それによって、view上のイベント(countup/
down)でstateを変更し、その変更を画面上に
再描画する
描画できたら、おわり!
最後が雑になってすみません。
ご協力ありがとうございました。

Mais conteúdo relacionado

Mais procurados

Webデザインの幅を広げる、jQuery【コードを記述する】 先生:保坂 庸介
Webデザインの幅を広げる、jQuery【コードを記述する】 先生:保坂 庸介Webデザインの幅を広げる、jQuery【コードを記述する】 先生:保坂 庸介
Webデザインの幅を広げる、jQuery【コードを記述する】 先生:保坂 庸介schoowebcampus
 
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門Shumpei Shiraishi
 
開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJSMizuho Sakamaki
 
ReactNativeを語る勉強会
ReactNativeを語る勉強会ReactNativeを語る勉強会
ReactNativeを語る勉強会yohei sugigami
 
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門Shumpei Shiraishi
 
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へJavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へMuyuu Fujita
 
Kotlinソースコード探訪
Kotlinソースコード探訪Kotlinソースコード探訪
Kotlinソースコード探訪yy yank
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけようKouji Matsui
 
Hello, React!! まで導く Reactの基礎
Hello, React!! まで導く Reactの基礎Hello, React!! まで導く Reactの基礎
Hello, React!! まで導く Reactの基礎iPride Co., Ltd.
 
jQueryで気をつけてほしいこと
jQueryで気をつけてほしいことjQueryで気をつけてほしいこと
jQueryで気をつけてほしいこと良太 増子
 
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13智治 長沢
 
Google Glassでできること XE12版 最新開発情報 Mirror API & GDK
Google Glassでできること XE12版 最新開発情報 Mirror API & GDKGoogle Glassでできること XE12版 最新開発情報 Mirror API & GDK
Google Glassでできること XE12版 最新開発情報 Mirror API & GDKMasahiro Wakame
 
Directiveで実現できたこと
Directiveで実現できたことDirectiveで実現できたこと
Directiveで実現できたことKon Yuichi
 
最近のSpringFramework2013 #jjug #jsug #SpringFramework
最近のSpringFramework2013 #jjug #jsug #SpringFramework最近のSpringFramework2013 #jjug #jsug #SpringFramework
最近のSpringFramework2013 #jjug #jsug #SpringFrameworkToshiaki Maki
 
AngularJSとFluxとRiotJSと
AngularJSとFluxとRiotJSとAngularJSとFluxとRiotJSと
AngularJSとFluxとRiotJSとRyo Iinuma
 
【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!Yu Tanaka
 

Mais procurados (20)

Webデザインの幅を広げる、jQuery【コードを記述する】 先生:保坂 庸介
Webデザインの幅を広げる、jQuery【コードを記述する】 先生:保坂 庸介Webデザインの幅を広げる、jQuery【コードを記述する】 先生:保坂 庸介
Webデザインの幅を広げる、jQuery【コードを記述する】 先生:保坂 庸介
 
React meetup 3_eight
React meetup 3_eightReact meetup 3_eight
React meetup 3_eight
 
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
 
Rubyのススメ
RubyのススメRubyのススメ
Rubyのススメ
 
開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS
 
ReactNativeを語る勉強会
ReactNativeを語る勉強会ReactNativeを語る勉強会
ReactNativeを語る勉強会
 
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門
 
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へJavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へ
 
Kotlinソースコード探訪
Kotlinソースコード探訪Kotlinソースコード探訪
Kotlinソースコード探訪
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけよう
 
Angular2実践入門
Angular2実践入門Angular2実践入門
Angular2実践入門
 
Angular2
Angular2Angular2
Angular2
 
Hello, React!! まで導く Reactの基礎
Hello, React!! まで導く Reactの基礎Hello, React!! まで導く Reactの基礎
Hello, React!! まで導く Reactの基礎
 
jQueryで気をつけてほしいこと
jQueryで気をつけてほしいことjQueryで気をつけてほしいこと
jQueryで気をつけてほしいこと
 
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
 
Google Glassでできること XE12版 最新開発情報 Mirror API & GDK
Google Glassでできること XE12版 最新開発情報 Mirror API & GDKGoogle Glassでできること XE12版 最新開発情報 Mirror API & GDK
Google Glassでできること XE12版 最新開発情報 Mirror API & GDK
 
Directiveで実現できたこと
Directiveで実現できたことDirectiveで実現できたこと
Directiveで実現できたこと
 
最近のSpringFramework2013 #jjug #jsug #SpringFramework
最近のSpringFramework2013 #jjug #jsug #SpringFramework最近のSpringFramework2013 #jjug #jsug #SpringFramework
最近のSpringFramework2013 #jjug #jsug #SpringFramework
 
AngularJSとFluxとRiotJSと
AngularJSとFluxとRiotJSとAngularJSとFluxとRiotJSと
AngularJSとFluxとRiotJSと
 
【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!
 

Semelhante a React introduntion

React + Reduxで作る対話AI
React + Reduxで作る対話AIReact + Reduxで作る対話AI
React + Reduxで作る対話AIKentaro Tada
 
フロントエンド開発入門(React).pdf
フロントエンド開発入門(React).pdfフロントエンド開発入門(React).pdf
フロントエンド開発入門(React).pdfKSato2
 
React Nativeで始めるアプリ開発
React Nativeで始めるアプリ開発React Nativeで始めるアプリ開発
React Nativeで始めるアプリ開発Ryosuke Hara
 
React Native + Expoでアプリを開発してみた話
React Native + Expoでアプリを開発してみた話React Native + Expoでアプリを開発してみた話
React Native + Expoでアプリを開発してみた話GIG inc.
 
React Nativeで開発するマルチプラットフォームアプリ
React Nativeで開発するマルチプラットフォームアプリReact Nativeで開発するマルチプラットフォームアプリ
React Nativeで開発するマルチプラットフォームアプリMasayuki Iwai
 
エンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことエンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことMayumi Narisawa
 
エンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことエンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことMayumi Narisawa
 
改善React道
改善React道改善React道
改善React道Hoso michi
 
SYSTEMI勉強会まとめ資料(React基礎まとめ)
SYSTEMI勉強会まとめ資料(React基礎まとめ)SYSTEMI勉強会まとめ資料(React基礎まとめ)
SYSTEMI勉強会まとめ資料(React基礎まとめ)YoshikiWatanabe1
 
20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)Daisuke Yamazaki
 
raect.jsを触ったお話
raect.jsを触ったお話raect.jsを触ったお話
raect.jsを触ったお話Ryuuichi Iha
 
Create android app can send SMS and Email by React Natice
Create android app can send SMS and Email by React NaticeCreate android app can send SMS and Email by React Natice
Create android app can send SMS and Email by React NaticeGMO-Z.com Vietnam Lab Center
 
実践 Redux Saga -Practical Redux Saga-
実践 Redux Saga -Practical Redux Saga-実践 Redux Saga -Practical Redux Saga-
実践 Redux Saga -Practical Redux Saga-Shinichiro Yoshida
 
React componentのコンストラクタを追いかけて
React componentのコンストラクタを追いかけてReact componentのコンストラクタを追いかけて
React componentのコンストラクタを追いかけてHoso michi
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03Daiki Maekawa
 
Reactnative はじめの一歩
Reactnative はじめの一歩Reactnative はじめの一歩
Reactnative はじめの一歩PIXTA Inc.
 
iQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナーiQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナーImamura Masayuki
 
Xcode グループとフォルダー参照 #yhios
Xcode グループとフォルダー参照 #yhiosXcode グループとフォルダー参照 #yhios
Xcode グループとフォルダー参照 #yhiosTomohiro Kumagai
 
The First React on Rails
The First React on Rails The First React on Rails
The First React on Rails Kohei Ito
 
React.js・ReactNative・Redux入門
React.js・ReactNative・Redux入門React.js・ReactNative・Redux入門
React.js・ReactNative・Redux入門Kazuhiro Yoshimoto
 

Semelhante a React introduntion (20)

React + Reduxで作る対話AI
React + Reduxで作る対話AIReact + Reduxで作る対話AI
React + Reduxで作る対話AI
 
フロントエンド開発入門(React).pdf
フロントエンド開発入門(React).pdfフロントエンド開発入門(React).pdf
フロントエンド開発入門(React).pdf
 
React Nativeで始めるアプリ開発
React Nativeで始めるアプリ開発React Nativeで始めるアプリ開発
React Nativeで始めるアプリ開発
 
React Native + Expoでアプリを開発してみた話
React Native + Expoでアプリを開発してみた話React Native + Expoでアプリを開発してみた話
React Native + Expoでアプリを開発してみた話
 
React Nativeで開発するマルチプラットフォームアプリ
React Nativeで開発するマルチプラットフォームアプリReact Nativeで開発するマルチプラットフォームアプリ
React Nativeで開発するマルチプラットフォームアプリ
 
エンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことエンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたこと
 
エンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことエンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたこと
 
改善React道
改善React道改善React道
改善React道
 
SYSTEMI勉強会まとめ資料(React基礎まとめ)
SYSTEMI勉強会まとめ資料(React基礎まとめ)SYSTEMI勉強会まとめ資料(React基礎まとめ)
SYSTEMI勉強会まとめ資料(React基礎まとめ)
 
20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)
 
raect.jsを触ったお話
raect.jsを触ったお話raect.jsを触ったお話
raect.jsを触ったお話
 
Create android app can send SMS and Email by React Natice
Create android app can send SMS and Email by React NaticeCreate android app can send SMS and Email by React Natice
Create android app can send SMS and Email by React Natice
 
実践 Redux Saga -Practical Redux Saga-
実践 Redux Saga -Practical Redux Saga-実践 Redux Saga -Practical Redux Saga-
実践 Redux Saga -Practical Redux Saga-
 
React componentのコンストラクタを追いかけて
React componentのコンストラクタを追いかけてReact componentのコンストラクタを追いかけて
React componentのコンストラクタを追いかけて
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03
 
Reactnative はじめの一歩
Reactnative はじめの一歩Reactnative はじめの一歩
Reactnative はじめの一歩
 
iQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナーiQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナー
 
Xcode グループとフォルダー参照 #yhios
Xcode グループとフォルダー参照 #yhiosXcode グループとフォルダー参照 #yhios
Xcode グループとフォルダー参照 #yhios
 
The First React on Rails
The First React on Rails The First React on Rails
The First React on Rails
 
React.js・ReactNative・Redux入門
React.js・ReactNative・Redux入門React.js・ReactNative・Redux入門
React.js・ReactNative・Redux入門
 

React introduntion