Udemy-React-Course
  • Introduction
  • CodeSandbox で作る開発環境
    • CodeSandbox を使う利点
    • GitHub との連携
    • CodeSandbox の構造
  • 初めての React App
    • 最小限の React アプリケーションの実装
    • JSX と React Element
    • ES2015 のアロー関数について
    • React でアロー関数を使用する
    • 初めての React Component
    • ES2015 の import / export
    • export default
    • 2章の復習
  • State を持ったコンポーネント
    • State とは何か
    • ES2015 の class
    • React Class Component の書き方
    • click された時に setState で state を変更する
    • H20 Component 1
    • H20 Component 2
    • H20 Component 3
    • H20 Component 4
    • map と filter
    • map と filter の実践
  • 実践:TodoApp の作成
    • TodoApp の作成
  • 非同期処理, Promise, Ajax
    • HTTP プロトコルと AJAX
    • 非同期処理と Promise
    • JSON を取得し、その内容をレンダリングする React App の作成
  • 実践:API を叩く App
    • Giphy API を使用して、GIF画像検索する React App の作成
  • Redux の導入
    • Redux の概要
    • createStore で store を作る
    • Provider と Connect / store を React で使用する
    • Redux の全体像の確認
    • Presentational Component と Container Component
    • Action Creator
    • Combine Reducer
  • Redux-thunk を用いた非同期処理
    • Redux-thunk で非同期にアクションを発行する
    • Promise を Redux-thunk 上で活用する
  • React + Redux + Redux を用いた Giphy App
    • store を作る
    • Component に store を connect する
    • Search コンポーネントの作成
    • GiphyAPI を叩くメソッドの作成と Redux-thunk を使った非同期処理
    • 改善
  • 補足資料
    • App = ({name}) => name 型のシンタックス / Destructuring assignment
    • Class Component と Functional Component の使いわけ
  • 参考資料と謝辞
Powered by GitBook
On this page
  • State = 状態 とは何か
  • 氷、水、蒸気に変化するコンポーネント
  1. State を持ったコンポーネント

State とは何か

PreviousState を持ったコンポーネントNextES2015 の class

Last updated 7 years ago

今まで書いてきたコンポーネントは、「動的に変化」するものではありませんでした。つまり、一旦コードを書いて実行したら、その内容は「永久に同じまま」でした。

しかし実際のアプリケーションでは、表示する内容やスタイルが「動的に変化するもの」が多いでしょう。例えばニュースや天気情報を表示するアプリケーションでは、刻々と「変化する情報」を受け取って、React がそれに反応して表示する内容を「動的に更新する」わけです。

では今回は動的に変化するコンポーネントを書いていきます。

State = 状態 とは何か

これから State を持ったコンポーネント = Stateful Component を作っていきますが、その前に「State」とは一体なんなのか、水を例にとって考えてみます。

水は化学式で H2O と表記しますが、氷・水・蒸気と温度によって変化しますね。何がこの変化を規定しているのでしょうか?

そうです、温度です。温度が変化することで、H2O という物質の状態がそれに合わせて変化するわけです。

この H2O における「温度」が、まさに state = 状態です。一見、氷、水、蒸気と違うものに変化しているように思われますが、本質的には同じもので、変化しているのは「温度」という state だけなわけです。

React アプリケーションも、この変化する水と同じように考えることができます。本質的には同一のコンポーネントだが、内部の state の違いによって見た目や振る舞いが変化するわけです。

氷、水、蒸気に変化するコンポーネント

次のコードは温度によって氷、水、蒸気と表示が変化する React App です。Water コンポーネントが state に温度のための領域を持ち、これを変化させることで表示する内容とスタイルが変化します。

今までのコンポーネントと異なるのは「class」を用いていること、それから state を内部で持ち setState メソッドによって変更している点です。

では次のレッスンからこのアプリケーションについて説明していきます。

参考コード