08. 사용 사례 시나리오 2: Jotai
🔖 1. Jotai란?
특장점
예시 코드
// Jotai에서 제공하는 기본 함수: atom, useAtom
import { atom, useAtom } from 'jotai';
// 1. atom 정의: 전역 상태인 count를 관리할 atom
const countAtom = atom(0);
// 2. 이 atom을 사용하는 컴포넌트
function Counter() {
// useAtom을 사용하면 [값, 업데이트함수]를 반환해,
// 마치 useState처럼 count를 읽고 바꿀 수 있다.
// useState(0) 대신, useAtom(countAtom)을 사용한다.
const [count, setCount] = useAtom(countAtom);
return (
<div>
<h1>유령이 얼마나 남았나요?: {count}</h1>
<button onClick={() => setCount((c) => c + 1)}>유령 +1 증가</button>
<button onClick={() => setCount((c) => c - 1)}>유령 -1 감소</button>
</div>
);
}
export default function App() {
return (
<div>
{/* Counter를 렌더링하는 어디서든 countAtom을 통해 상태를 공유함 */}
<Counter />
<Counter />
</div>
);
}🔖 2. 하향식 접근 방법과 상향식 접근 방법
하향식(Top-down) 접근 방법
상향식(Bottom-up) 접근 방법
Jotai는 Bottom-up, zustand는 Top-down 방식?
🔖 3. 배열 구조 추가하기
Atoms-in-Atom
왜 이렇게 하는 걸까?
예시 코드
Last updated