114日目:ReactとReduxの基礎を復習:dispatch・props・stateとは?定義と使い方

ここでReactとReduxの基礎を復習したくなり、掌田津耶乃さんの本で再度復習しました。Reduxのdispatch、Reactコンポーネントのstateについて主に見直しをしましたので、定義についてまとめます。

①Reduxのdispatch(ディスパッチ)とは?ストアの変更を行うために大切な働きをする

dispatchとは?のシンプルな答えは、本によると以下のとおりです。

dispatchは、Reduxに「アクション」と呼ばれるものを送る働きをします。dispatchによってアクションが送られると、ストアのレデューサーが呼び出され、そこで必要な処理が実行されるのです。(中略)dispatchによって、レデューサーが実行され、新しいステートがストアに設定されていたのです。ストアの変更は、このようにして行っていたのですね。

React.js&Next.js超入門 掌田津耶乃 秀和システム

アクションを用意してから、dispatchする(dispatchを呼び出す)ことで初めてストア(内のステートの値)の変更が行われるということでした。

dispatchが出てくる度に「そういえば定義ってなんだっけ…」とこの部分を読み返すのは今回で3度目でした!

②Reactのコンポーネントの機能state(ステート)とは?プロパティ・props・ステート(state)の定義

Reduxについて先に書いてしまいましたが、その大元のReactのステートについても復習です。

  1. プロパティ:クラスに値を保管しておくのに使うもの
  2. props: コンポーネントの属性をまとめて保管する(read only 値は取り出しのみ)
  3. ステート(state) :コンポーネントの状態を表す値を保管するためのもの=ステートの値を操作することで、コンポーネントの状態を操作できる(引用元:React.js&Next.js超入門 掌田津耶乃 秀和システム)

この定義を覚えていれば、this.state.○○とthis.props.○○の値が異なる結果になることが理解しやすいと思いました。

この本に掲載されているアプリも是非作成して、ReactとReduxについてさらに理解を深めたいと思っています。

現在使用している教材:本:React.js&Next.js超入門 掌田津耶乃 秀和システム 学習時間2時間

今回は第3章と第4章のReact componentsとReduxの基礎について主に復習しました。学習時間は約2時間。

次回からまたUdemy講座の仕上げ(おまけでついていた講座追加部分)に戻ります。

 

関連キーワード
  • 131日目~134日目:Udemyで一番人気のGit (&GitHub) コースを修了!学習した内容・学習にかかった時間とおすすめ度をご紹介: Completed Git course by Udemy "Git Complete: The definitive, step-by-step guide to Git" by Jason Taylor: Highly recommended to both beginner & intermediate leaner
  • 121日目~130日目:Udemyで新しいReactコース学習とGit & GitHubのコースを受講し始める #100dayofcode Round 2
  • 120日目:プログラミング学習100日チャレンジの完了とこれからの学習&ブログ記事:100days of code completed & from now on
  • 119日目:完成したWebアプリケーションの公開(Devconnector deployed on Heroku)
  • 118日目:Udemy講座の感想口コミ&自分に合った講座の選び方ポイント:Mern Stack Front to Back: Full Stack React, Redux & Node.js by Brad Traversy
  • 117日目:完成!Herokuへのデプロイ成功:Heroku CLIのインストールからWebアプリデプロイまで。Herokuの使い方と、package.jsonとgitコマンドではまったところと解決方法
おすすめの記事
102日目①:Create Profile Action:React routerでwithRouterを使ってリダイレクトを可能にする
プログラミング100日チャレンジ記録 #100daysofcode
今回は、ダッシュボードのプロフィール部分のactionを作成しました。新しく学んだことは、import { withRouter} from...