👻

Jotaiのatomは値を持たないのです、たぶんRecoilも同じ

2023/02/06に公開

よく誤解されるのですが、atomはステートの定義であって、atomオブジェクト自身は値を持ちません。ObservableやSignalとの違いはそこにあるかもしれません。

atomが単なる定義だとするとどういうメリットがあるでしょうか。再利用性が高くなります。以前作った簡単な例がこちら:

https://twitter.com/dai_shi/status/1447892237753278466

複数のProvider配下で、atomはそれぞれ別の値を持ちます。

ちなみに、Jotai v2によってstoreの存在が明確になったので、説明はしやすくなりました。atomの値はstoreで保持されます。storeはざっくりatomとその値のWeakMapです。

type Store = WeakMap<Atom, AtomValue>

興味がある方はこちらの記事も参照ください。

https://zenn.dev/dai_shi/articles/610a8a958fc9d1

Jotai Friends

Discussion