<aside> 💡
チャプター完了時点のソースコード
https://github.com/craftgear/react-hands-on/tree/ch6
</aside>
jotaiをインストールする
npm i jotai
/state/counterAtom.ts
ファイルを作成し、counterAtom
を定義する
import { atom } from 'jotai';
export const counterAtom = atom(0);
<Counter />
コンポーネントをコピーして<CounterWithAtom/>
コンポーネントを作り、 useState
を useAtom
で置き換える。
Index.tsx
で <CounterWithAtom />
をインポートする。
ルーティングでカウントが保持されていることを確認する。
counterAtom
を直接エクスポートする代わりに useCounter
カスタムフックを作成し、エクスポートする。
export const useCounter = () => useAtom(counterAtom);
オブジェクトを状態として持つ appStateAtom
を追加する
// object
const appStateAtom = atom({ count: 0, message: '10未満' });
export const useAppState = () => useAtom(appStateAtom);