跳至主要內容

Recoil Relay 0.1

·一分鐘閱讀時間

recoil-relay 函式庫的首次開源發布,專門用於GraphQL

此函式庫結合 Relay 函式庫,協助 Recoil 使用 GraphQL 執行類型安全且有效率的查詢。該函式庫提供可輕鬆使用 GraphQL 進行查詢的選取器。此類查詢與 Recoil 資料流圖同步,因此下游選取器能夠由此類查詢衍生狀態,也能依賴於上游 Recoil 狀態,而且能夠自動從 Relay 訂閱圖中任何異動。所有資料都會自動保持同步。

範例

GraphQL 查詢就像定義 GraphQL 選取器 一樣簡單

const userNameQuery = graphQLSelector({
key: 'UserName',
environment: myEnvironment,
query: graphql`
query UserQuery($id: ID!) {
user(id: $id) {
name
}
}
`,
variables: ({get}) => ({id: get(currentIDAtom)}),
mapResponse: data => data.user?.name,
});

再像使用任何其他 Recoil 選取器 一樣使用它

function MyComponent() {
const userName = useRecoilValue(userNameQuery);
return <span>{userName}</span>;
}