🐣

Reactをはじめてみた 2日目。

2023/06/21に公開

誰にも参考にならないかもしれない。
2日目 >>3時間ぐらいの学習時間

今日の学習資料

【React Hooks入門】完全初心者OK!8種類のHooksを学んでReactの理解を深めよう
慣れるまでは、動画中心が良い気がするので今日も動画を視聴

Hook(フック)React 16.8 で追加された機能を学ぶ

useState

変数の値を監視する

  1. 保存した値を含む状態変数( )。index
  2. 状態変数を更新し、React をトリガーしてコンポーネントを再度レンダリングできる状態設定関数( )。
import { useState } from 'react';

// index:状態, setIndex:セッター関数 
const [index, setIndex] = useState(0);

// index 加算
  const handleClick = () => {
    setIndex(index + 1);
  };

// ボタンクリックでhandleClickを実行
<button onClick={handleClick}>加算</button>

// ボタンクリックで、indexの値が更新され再レンダリングが行われる

useEffect

発火時期を決める、変数に変更があった場合とか
公式だと「コンポーネントを外部システムと同期できるようにする React Hook 」だそうだ。
外部システムとの接続によく使われるらしい。

useEffect(setup, dependencies)
name 備考
setup エフェクトのロジックを含む関数
dependencies コード内で参照されるすべてのリアクティブ値のリスト。リアクティブ値には、props、state、およびコンポーネント本体内で直接宣言されたすべての変数と関数が含まれます

公式:外部システムとの接続例

useContext

全般で使うconst 入れとく的なもの、ログイン情報とかに使える?
下の層のコンポーネントとデータの共有ができる。
props で渡すと煩雑になりがちだがこれを使うと楽に渡せる。

記述で迷った…同じように書いてもエラー出る…
結局 render の前にexport してあげて、かつ参照する側では
import { XXXX } from ',./main'; として動いた…うーん

公式:コンテキストの更新の例

useRef

要素への参照を行います。
useRefは、レンダリングに必要のない値を参照できる React Hook

const ref = useRef(initialValue)

使い道

  • ref を使用して値を参照する
  • ref を使用した DOM の操作 << これ結構使いそう
  • ref コンテンツの再作成を回避する

公式:ref を使用した DOM の操作 

useReduser

カートの数量とかで使えそうなやつ

useMemo

重い処理を指定して隔離、それ以外をメモリで動かす。
useMemoは、再レンダリング間の計算結果をキャッシュできる React フック。

const cachedValue = useMemo(calculateValue, dependencies)
name 備考
calculateValue キャッシュする値を計算する関数
dependencies コード内で参照されるすべてのリアクティブ値のリスト。

公式:useMemo と値を直接計算することの違い

useCallBack

指定変数の変動を検知してコールバックを実行
useCallbackは、再レンダリングの間に関数定義をキャッシュできるようにする React フック。

const cachedFn = useCallback(fn, dependencies)

使い道

  • コンポーネントの再レンダリングをスキップする
  • メモ化されたコールバックから状態を更新する
  • エフェクトが頻繁に発動しないようにする
  • カスタムフックの最適化

公式:コンポーネントの再レンダリングをスキップする

customHook

何度も書くものとかに使える?

今日わかった感じになったこと

  • 何も対策しないと値1つの更新ごとに全体更新される
  • useContextは使う用途しっかり考えるほうがいいかも
  • useEffectは今後だいぶお世話になりそうなので後でしっかり学習する

気づき

  • 一年前の動画と同じことやっているのにエラー出た、なにか使用が変わったのかな…。

Discussion