🍂

jotai-signalのその後

2023/03/05に公開

以前の記事

https://zenn.dev/dai_shi/articles/ebe920a9698c62

で、

create-react-signalsの中身については、ブログ記事にしなければと思いつつ、まだ手がついていません。そのうち。

と書きましたが、その後書いたものがこちら。

https://blog.axlight.com/posts/demystifying-create-react-signals-internals/

少し機能も追加して、jotai-signal用に、signalを再帰的に作らないようなケースにも対応しました。なぜなら、jotai-signalで使う場合のatomは既に十分小さくできるはずだからです。

これにより、新しくatomSignalという仕組みを作ることができました。

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

しかし、これは諸刃の剣というか、atomの良さを隠してしまっています。Jotaiのatomは単なる定義であり、その値はstoreに格納されるのですが、atomSignalはatomとstoreが一体化したものを作ってしまいます。ほぼコンセプト崩壊。おそらく、observableとcreate-react-signalsを組み合わせても同じことができるでしょう。

atomSignalはお試しで作ったものですが、Twitterでポジティブな意見ももらったので、機会があれば、そっち方向を模索しても良いかもしれません。jotai-signalとしては、atomSignalはおすすめせず、今まで通りの$の使い方が自然な感じがします。と言っても、Jotaiは基本、useAtomを使うことでほぼ困らないと思いますので、jotai-signalの出番は少ないでしょう。(diffingの省略に魅力が残りますが、となるとuseAtomとjotai-uncontrolledの組み合わせの方が筋が良かったり?)

create-react-signalsは仕組みとしては面白いのですが、Reactがuse(observable)とかを実装すれば、ほぼいらなく(diffingの省略は残るものの)なりますね。今後どうなるか。


ただの備忘録になってしまいました。ひっそり公開しておきます。

Discussion