混同反応を用いた概念2-state hook(TIL#02)


stateって何?

  • 状態とは、propsと同様の概念を意味するが、他の要素では使用できず、要素内部で変更可能な値である.
  • クラスの構成部品では、this.stateでは使用できますが、関数要素では使用できませんが、応答16.8の後、usStateというHooksを使用してstateを使用できます.
  • useStateの使用

    import React, { useState } from 'react';
    
    const Counting = () => {
        const [count, setCount] = useState(0);
        return (
            <div>
                <p>버튼을 {count}번 클릭하셨습니다.</p>
                <button onClick={() => setCount(count + 1)}>
                    클릭하기
                </button>
            </div>
        );
    }
    
    export default Counting;
  • ユーザ状態関数のパラメータとして,状態の初期値を入力するだけでよい.
  • userState関数を呼び出すと、2つの要素を含む配列が返されます.1つ目の要素は現在のステータス(state)、2つ目の要素はステータスを変更するためのセットアップ関数です.
  • を実行すると、次の結果が得られます.クリック回数が多いほど、カウントが高くなります.
  • stateの使用上の注意

  • ステータス値を変更する場合は、usStateで送信されたセッションを使用する必要があります.上記のコードでは、setCount(count+1)ではなくcount=count+1で変数を直接修復することはできません.
  • 配列またはオブジェクトを更新する場合は、オブジェクトのコピーを作成し、コピーで値を更新し、setter関数で保存します.
  • import React, { useState } from 'react';
    
    const Counting = () => {
        const [countInfo, setCountInfo] = useState({count: 0, odd: false});
    
        return (
            <div>
                <p>버튼을 {countInfo.count}({countInfo.odd ? '홀' : '짝'}) 클릭하셨습니다.</p>
                <button onClick={() => setCountInfo({
                    ...countInfo,
                    count: countInfo.count + 1,
                    odd: !countInfo.odd,
                    })}>
                    클릭하기
                </button>
            </div>
        );
    }
    
    export default Counting;
    上記の例では、countInfoにcountおよびodd情報を格納することによってstate値を更新します.
    {
        ...countInfo,
        count: countInfo.count + 1,
        odd: !countInfo.odd,
    }
    countInfoオブジェクトのコピーを作成および上書きし、セッションで更新しています.