React Hooks
Hooksとは
クラスコンポーネントを記述せずにstateやその他のReactの機能を使用できる機能
フックではReactのstate管理、親子間の変数の受け渡しなどの機能へのアクセスを関数コンポーネントとして利用する
useState
Reactにおいてコンポーネント内で値を保持/利用する機能
Stateとは
Reactにおいてコンポーネント内で値を保持しておく為に使用するメモリ領域
import { useState } from ‘react’;
export const App = () => {
const [変数名, 変数を操作する関数名] = useState(初期値);
const [num, setNum] = useState(0);
return (
<div>
<button onClick={ () => setNum(num + 1) }>Click me</button>
<p>clicked {num} times.</p>
</div>
);
};
useEffect
関数の実行タイミングをReactのレンダリング後まで遅らせる機能
import { useState, useEffect } from ‘react’;
export const App = () => {
const [num, setNum] = useState(0);
const [name, setName] = useState({
firstName: ”
});
useEffect(() => { 実行させたい処理 }, [ 依存する変数 ]);
依存する変数=変数に変化があった場合にのみ、処理が実行される
useEffect(() => {
document.title = `clicked ${num} times`;
}, [num]);
numに変化があった場合のみ、useEffect内の処理が実行される
nameに変化があった場合でも、useEffect内の処理は実行されない
return (
<div>
<button onClick={ () => setNum(num + 1) }>Click me</button>
<p>clicked {num} times.</p>
<input type=”text”
value={name.firstName}
onChange={ (e) => { setName({…name, firstName: e.target.value}) }} />
</div>
);
};
useContext
コンポーネント間でpropsを渡さずに、共有のメモリを参照する機能