Recoil から最近登場したライブラリ recoil-relay とライブラリ公開の真意について、@spring-raining と @uhyo が話しました。
Recoilについて
- ep.49 ReThink state managements - Recoil から見える未来 https://uit-inside.linecorp.com/episode/49
recoil-relayでできること
- リリースブログ: https://recoiljs.org/blog/2022/06/02/recoil-relay-0.1.0-release
- Recoilと統合されたGraphQLクライアント
- GraphQLのクライアントとしてはApolloが有名だが、Meta公式はRelayというライブラリを提供している
- spring-raining: recoil-relay自体は小さなライブラリで、コードリーディングをすると色々と発見があった
recoil-relayのAPIの特徴
- 1つのqueryやmutationがRecoilでいうselectorとなり、selectorを通してアクセスすることで裏にGraphQLがあることを意識せずに扱える
- 内部的には、selectorに対応するatom familyが作られてそれにatom effectsを設定する形でreactivityを実現している
- queryとmutationを別々のselector以外にも、queryとmutationをペアにしてwritable selectorにすることもできる。このselectorを更新すると、ローカルのキャッシュも更新される
- Recoilの特徴でもあるselector内での非同期処理を活用している
Recoilを他のライブラリと組み合わせる可能性
- 同じMeta社によるライブラリのRelayと組み合わせられられているが、他にもいろいろなライブラリと組み合わせて使うことができそう
- Data fetching系のライブラリとの統合
- ライブラリ間とのコミュニケーションとしての役割
- State managementからData-flow graphへ
- atom effectの登場
Recoilの登場以降の動向
- Recoilは意外と歴史が長く、登場から2年が経った
- これまでの主なアップデート
- v0.1.1 Atom effects
- v0.4 Transactions
- v0.6 Concurrent rendering/transitionのサポート
Refs
- LINE 新卒採用 2023
- キャリア採用はこちらから
- BGM&SE
- 魔王魂/騒音のない世界/OtoLogic