React Hooksのメンタルモデルと使い方について


  1. メンタルモデル: React Hooksのメンタルモデルは、関数コンポーネント内で状態を管理するための新しいアプローチです。従来のクラスコンポーネントでは、状態をthis.stateとthis.setState()で管理しましたが、HooksではuseStateフックを使用して関数コンポーネント内で状態を管理します。useStateフックは、現在の状態と状態を更新するための関数を返します。

例:

import React, { useState } from 'react';
function Counter() {
  const [count, setCount] = useState(0);
  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
}
  1. 副作用の管理: 副作用は、データのフェッチ、DOMの変更、タイマーの設定など、コンポーネントの状態とは直接関係のない操作です。従来のクラスコンポーネントでは、ライフサイクルメソッド(componentDidMount、componentDidUpdate、componentWillUnmountなど)を使用して副作用を管理しましたが、HooksではuseEffectフックを使用します。useEffectフックは、コンポーネントのレンダリング後に副作用を実行するためのメカニズムを提供します。

例:

import React, { useState, useEffect } from 'react';
function DataFetcher() {
  const [data, setData] = useState(null);
  useEffect(() => {
    // データのフェッチなどの副作用を実行する
    fetchData().then((result) => {
      setData(result);
    });
  }, []);
  return <p>Data: {data}</p>;
}

以上のように、React Hooksを使用することで、シンプルで直感的な方法で状態管理や副作用の処理が行えます。これにより、コンポーネントの可読性と保守性が向上し、コードの再利用性も高まります。