2022/06/17 に公開 2515 views

このエピソードについて

Recoil から最近登場したライブラリ recoil-relay とライブラリ公開の真意について、@spring-raining と @uhyo が話しました。

Recoilについて

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の登場以降の動向

Refs