SlideShare a Scribd company logo
React introduntion
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を部品化したもので
ページを構成する
← つまり、こういうこと
React introduntion
React introduntion
でも、見た目は今までと一緒じゃん!
            って思うかもしれませんが
コンポーネント(部品)ごとに別のファイ
ルで作って、使いたいところで呼び出すと
いった使い方ができる。
今までと違うところ
コンポーネント指向のメリット
・コードが切り分けられているので
       小さな単位でコードを考えられる
・見るべきところがハッキリするので
      コードを理解しやすく保持しやすい
・デザインの再利用が簡単
仮想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を変更し、その変更を画面上に
再描画する
描画できたら、おわり!
最後が雑になってすみません。
ご協力ありがとうございました。

More Related Content

PDF
angular1脳で見るangular2
Moriyuki Arakawa
 
PDF
20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】
Masato Mori
 
PDF
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
Shuji Watanabe
 
PPTX
社内LTネタ ReactNative
Oguri Toru
 
PDF
Kotlinこんなん出ましたけど
yy yank
 
PPTX
React Nativeってどうなの?
Ryosuke Hara
 
PDF
Javaと小道具
Sho Ito
 
PDF
Swiftビギナーズ倶楽部 vol.2
Kanako Kobayashi
 
angular1脳で見るangular2
Moriyuki Arakawa
 
20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】
Masato Mori
 
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
Shuji Watanabe
 
社内LTネタ ReactNative
Oguri Toru
 
Kotlinこんなん出ましたけど
yy yank
 
React Nativeってどうなの?
Ryosuke Hara
 
Javaと小道具
Sho Ito
 
Swiftビギナーズ倶楽部 vol.2
Kanako Kobayashi
 

What's hot (20)

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

Similar to React introduntion (20)

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

React introduntion