🖇

Recoilにロジックを載せる運用戦略

に公開4
ailead, Inc. Tech Blog

Discussion

yokoiwayokoiwa

はじめまして。興味深く拝読させていただきました。

useQueryのようなフックからGraphQLリクエストを送っていますし、

こちらは TanStack Query などのSWRライブラリを指しているのでしょうか。
その場合、通信キャッシュのような仕組みは自前で実装することを想定されているのでしょうか。

uhyouhyo

ご感想ありがとうございます🙂

こちらは TanStack Query などのSWRライブラリを指しているのでしょうか。
その場合、通信キャッシュのような仕組みは自前で実装することを想定されているのでしょうか。

まだRecoilが導入されていないところはApollo ClientのuseQueryが使われています。

キャッシュに関しては、するどいご指摘かと思います。実はRecoil内部で発行されるGraphQLリクエストには特にキャッシュの仕組みを設けてはいないです。
ただ、selectorは依存先が変わるまで再計算されないので、値を読むたびに同じリクエストが何回も飛ぶようなことはありません。
我々は今のところ、selectorのデフォルトの挙動を超えたキャッシュを特に必要としていないので、そこは省いています。
もし将来的により賢いキャッシュが必要になった場合、自前で実装することを想定しています。

yokoiwayokoiwa

さっそくのお返事ありがとうございます!

たしかにデータベースの更新頻度によってはローカルのキー依存にしてしまい、キャッシュは考慮せず Recoil に一本化してしまって良さそうですね。
たいへん参考になりました。ありがとうございます。

北市真北市真

多分Recoilについては、ぼんやりと同じようなことを感じていたのですが、uhyoさんが次々と言葉にしていってくれるので興奮して読んでいます。
atomResetOnDepsUpdate のような物は確かに欲しいのですが、実装方針どのようになっているか、いつか記事にされることってありますか・・・?