Open6

jotaiの中身を読む

nakaakistnakaakist

状態管理ライブラリ jotaiの中身を読んで何が起こっているかを理解する

nakaakistnakaakist

一番単純な下記のようなケースで何が起こるか見る

import { atom } from "jotai";

const countAtom = atom(0);

const Counter = () => {
  const [count, setCount] = useAtom(countAtom);

  return (
    <>
      <div>{count}</div>
      <button onClick={() => setCount(count + 1)}>one up</button>
    </>
  );
};
nakaakistnakaakist

useAtomValueでは、下記処理を行っている

nakaakistnakaakist

storeの処理を見ていく

コンポーネント内でuseAtomValueが呼ばれるとstoreが作られるが、この実体は下記のdefaultStore変数。
https://github.com/pmndrs/jotai/blob/main/src/vanilla/store.ts#L674

これは、get, set, subの3つの関数のプロパティを持つオブジェクト。