SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
フロントエンド開発入門
React
目次
1. 発表者紹介
2. 発表の概要
発表者紹介
趣味:高校野球観戦・映画鑑賞・パワプロくん
マイブーム:ドラクエモンスターズ(イル/ルカSP)
目標:田舎に引っ越して犬(複数?)と生活
発表の概要
● Reactの基本概念
● Reactの基本的な使い方
Reactとは?
Reactとは? (1)
● Facebookが2013年にリリースしたJavaScriptのViewライブラリ
Reactってなんだ?
Reactとは? (2)
State of JS 2021
Reactとは? (3)
● フロントエンドロードマップ
● Reactロードマップ
Reactの基本概念を学ぶ
Reactの根本の概念を抑えたい理由
● フレームワークは便利であるからこそ、実際の挙動がブラックボックスのように感
じるケースがある
● ReactはJavaScriptのライブラリでありそれ以上でもそれ以下でもない
● JavaScriptで動的にUIを変化させるということは、
DOM要素をJavaScriptで操作
するということ
DOMとは???
● ざっくり:DOMはDocument Object Modelの頭文字を取った言葉
で、HTML等のリソースをツリー状の構造で表現して JavaScript等で
操作可能にした物
○ getElementById(‘id’)
DOM Visualizer
DOMとは(mdn)
何度調べてもわからない DOMに決着をつける
Reactで重要な概念
● 宣言的UI (Declarative)
● 仮想DOM(Virtual DOM )
● コンポーネントベース(Component Based)
○ JSX
Why did we build React
これからReactを勉強する人が最初に見るべきスライド 7選
なぜ仮想DOMという概念が俺達の魂を震えさせるのか
React公式
宣言的UI
宣言的UIとは?
● 宣言的にUIを定義する..........??
宣言的UIって何なん? 〜日本昔ばなし「やめ太郎」〜
宣言的UI (そな太さん)
例えばこんなページを作りたい時
宣言的UIって何なん? 〜日本昔ばなし「やめ太郎」〜
命令的に書く場合
リンク
Reactで同じものを作成する場合
リンク
仮想DOM
仮想(Virtual)DOMとは?
● JavaScriptのオブジェクトでDOMを表現したもの
○ イメージ
● JavaScriptで直接DOMを書き換える場合
○ リンク
● 仮想DOMを使用する場合
○ 次のスライドへ
仮想(Virtual)DOMを使用した
基本的なUI更新の仕組み
Incremental vs Virtual DOM より
● UIを仮想DOMとして保持
● 変更前後の仮想DOMを比較し違いを探す
● 違い部分の通りリアルな DOMを更新する
【React】仮想DOMって何!?コンポーネントのレンダリングと描画について理解しよう!
仮想(Virtual)DOMを使用してUI更新の仕組み
Incremental vs Virtual DOM より
仮想(Virtual)DOMの例 ②
livoras/simple-virtual-dom
実際のコード例
コンポーネント
Reactのコンポーネントとは?
● ReactのUIを構築する部品のこと
○ UIの表示に必要なデータや処理を1つのオブジェクトにまとめたもの
Reactコンポーネントの例
リンク
JSXとは?
Introducing JSX
JSXはJavaScript を拡張して、UI 要素を記述するのにHTMLのような
タグ構文が使えるようにしたもの
(React入門「ReactのJSXとは?」より)
結論
Reactだと
宣言的UIと仮想DOMで
「設計とパフォーマンスが両立できる」
Reactの基本的な使い方
Reactを試してみる
● Hello World!
● Classコンポーネント?関数コンポーネント?
● State管理・更新・Props(useState)
● データバインディング(Todoリスト)
○ isCompletedを自分でやってみよう
○ 関数の渡し方
● APIリクエスト(useEffect)
● 取得したリストの表示
● ルーティング
https://github.com/K-Sato1995/react-example
https://stackblitz.com/
Classコンポーネント?関数コンポーネント?
結論
新しくReactを始める場合は基本的に関数コンポーネントを使用する
React今昔物語
Function and Class Components
State・Propsとは?
● State: 各コンポーネント内部でもつ、コンポーネントの状態を管
理するもの
● Props: 親コンポーネントから子コンポーネントに値を渡すため
の仕組み
Hooksとは?
● React16.8で導入された
● Reactの多くの機能を関数型コンポーネントでも使用可能にした
基本的なHook(useState)
● 関数コンポーネントでStateを管理する為のHook
基本的なHook(useEffect)
● 関数コンポーネントで副作用(side-effect)(関数外に影響を与える・引数
以外要因で結果が変わる)を実行するためのHook
告知
● 11月にgitについての勉強会があります!!!!!
● 本日の資料は別途公式の方から共有します
○ その場でLine連携お願いします

Contenu connexe

Similaire à フロントエンド開発入門(React).pdf

React Nativeでお絵描きしてみた
React Nativeでお絵描きしてみたReact Nativeでお絵描きしてみた
React Nativeでお絵描きしてみたkazuki matsumura
 
Inside frogc in Dart
Inside frogc in DartInside frogc in Dart
Inside frogc in DartGoro Fuji
 
20210316_myfirst react
20210316_myfirst react20210316_myfirst react
20210316_myfirst reactKuroiwa Takumi
 
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話Sadao Tokuyama
 
JavaScriptで味わう! 関数型プログラミングのメリット!!
JavaScriptで味わう! 関数型プログラミングのメリット!!JavaScriptで味わう! 関数型プログラミングのメリット!!
JavaScriptで味わう! 関数型プログラミングのメリット!!Keigo Magami
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングterurou
 
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)Recruit Lifestyle Co., Ltd.
 
Rds 2008 R2 Express Editionで遊んでみよう
Rds 2008 R2 Express Editionで遊んでみようRds 2008 R2 Express Editionで遊んでみよう
Rds 2008 R2 Express Editionで遊んでみようguest468ec6
 
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)parrotstudio
 
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのかなぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのかYoichi Toyota
 
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~典子 松本
 
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみるasa88
 
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれからReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれからYusuke Murata
 
Scalatronで楽しく学ぶ関数型プログラミング
Scalatronで楽しく学ぶ関数型プログラミングScalatronで楽しく学ぶ関数型プログラミング
Scalatronで楽しく学ぶ関数型プログラミングJun Saito
 
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へJavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へMuyuu Fujita
 

Similaire à フロントエンド開発入門(React).pdf (20)

CoronaSDKのご紹介
CoronaSDKのご紹介CoronaSDKのご紹介
CoronaSDKのご紹介
 
React Nativeでお絵描きしてみた
React Nativeでお絵描きしてみたReact Nativeでお絵描きしてみた
React Nativeでお絵描きしてみた
 
Walking front end
Walking front endWalking front end
Walking front end
 
Inside frogc in Dart
Inside frogc in DartInside frogc in Dart
Inside frogc in Dart
 
20210316_myfirst react
20210316_myfirst react20210316_myfirst react
20210316_myfirst react
 
Groovyコンファレンス
GroovyコンファレンスGroovyコンファレンス
Groovyコンファレンス
 
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
 
JavaScriptで味わう! 関数型プログラミングのメリット!!
JavaScriptで味わう! 関数型プログラミングのメリット!!JavaScriptで味わう! 関数型プログラミングのメリット!!
JavaScriptで味わう! 関数型プログラミングのメリット!!
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)
 
Rds 2008 R2 Express Editionで遊んでみよう
Rds 2008 R2 Express Editionで遊んでみようRds 2008 R2 Express Editionで遊んでみよう
Rds 2008 R2 Express Editionで遊んでみよう
 
java-ja TDD 2nd
java-ja TDD 2ndjava-ja TDD 2nd
java-ja TDD 2nd
 
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
 
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのかなぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
 
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
 
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
 
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれからReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
 
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
 
Scalatronで楽しく学ぶ関数型プログラミング
Scalatronで楽しく学ぶ関数型プログラミングScalatronで楽しく学ぶ関数型プログラミング
Scalatronで楽しく学ぶ関数型プログラミング
 
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へJavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へ
 

フロントエンド開発入門(React).pdf