Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Apollo graphql client integration for jotai 🚀 👻

License

NotificationsYou must be signed in to change notification settings

jotaijs/jotai-apollo

Repository files navigation

Discord Shield

Minimal@apollo/client integration for jotai, similar tojotai/urql.

Install

You have to install@apollo/client andjotai to access this bundle and its functions.

yarn add jotai-apollo jotai @apollo/client

atomsWithQuery

atomsWithQuery creates two atoms with a query. It internally usesclient.watchQuery.

import{useAtom}from'jotai'import{ApolloClient,gql}from'@apollo/client'import{atomsWithQuery}from'jotai-apollo'constclient=newApolloClient({ ...})constquery=gql`  query Count {    getCount {      count    }  }`const[countAtom,countStatusAtom]=atomsWithQuery((get)=>({    query}),()=>client,// optional)constApp=()=>{const[data]=useAtom(countAtom)return<div>{JSON.stringify(data)}</div>}

type:

exportconstatomsWithQuery=<Data,Variablesextendsobject=OperationVariables>(getArgs:(get:Getter)=>QueryArgs<Variables,Data>,getClient:(get:Getter)=>ApolloClient<any>=(get)=>get(clientAtom)):readonly[dataAtom:WritableAtom<Data,AtomWithQueryAction>,statusAtom:WritableAtom<ApolloQueryResult<Data>,AtomWithQueryAction>]

Examples

Rick & Morty characters

atomsWithMutation

atomsWithMutation creates two atoms with a mutation. It internally usesclient.mutate.

import{useAtom}from'jotai'import{ApolloClient,gql}from'@apollo/client'import{atomsWithMutation}from'jotai-apollo'constclient=newApolloClient({ ...})constmutation=gql`  mutation Count {    setCount {      count    }  }`const[countAtom,countStatusAtom]=atomsWithMutation((get)=>({    mutation}),()=>client,)constApp=()=>{const[data,mutate]=useAtom(countAtom)return<div>{JSON.stringify(data)}<buttononClick={mutate}>Click me</button></div>}

type:

exportfunctionatomsWithMutation<Data=any,Variables=OperationVariables,Context=DefaultContext,Extensions=Record<string,any>,ResultextendsFetchResult<Data,Context,Extensions>=FetchResult<Data,Context,Extensions>>(getClient:(get:Getter)=>ApolloClient<any>=(get)=>get(clientAtom)):readonly[dataAtom:WritableAtom<Data,Action<Data,Variables,Context>,Promise<void>>,statusAtom:WritableAtom<Result,Action<Data,Variables,Context>,Promise<void>>]

Examples

Contributions are welcome.

atomsWithSubscription

atomsWithSubscription creates two atoms with a mutation. It internally usesclient.subscribe.

import{useAtom}from'jotai'import{ApolloClient,gql}from'@apollo/client'import{atomsWithSubscription}from'jotai-apollo'constclient=newApolloClient({ ...})constsubscription=gql`  subscription Count {    getCount {      count    }  }`const[countAtom,countStatusAtom]=atomsWithSubscription((get)=>({query:subscription}),()=>client)constApp=()=>{const[data]=useAtom(countAtom)return<div>{JSON.stringify(data)}</div>}

type:

exportfunctionatomsWithSubscription<Data,Variablesextendsobject=OperationVariables>(getArgs:(get:Getter)=>SubscriptionOptions<Variables,Data>,getClient:(get:Getter)=>ApolloClient<any>=(get)=>get(clientAtom)):readonly[dataAtom:WritableAtom<Data,Action>,statusAtom:WritableAtom<SubscriptionResult<Data,Variables>,Action>]

Examples

Contributions are welcome.

Contributing

If you have found what you think is a bug/feature, pleasefile an issue.

For questions around this integration, preferstarting a discussion.


[8]ページ先頭

©2009-2025 Movatter.jp