GraphQl- react x条件
#javascript #react #api #graphql

大家好,这是我们GraphQl系列的第四部分。在这一部分中,我们将讨论如何使用Apollo客户端软件包在React Js中使用GraphQl创建API。

什么是Zustand?

zustand只是一个小型且高效的状态管理库,就像redux一样,但大小比用于创建应用程序的全局状态的redux小。

什么是阿波罗客户?

使用Apollo客户端,您可以轻松地将React组件连接到GraphQl API,获取和管理数据,并将应用程序的本地状态与服务器同步。它提供了一种声明性和直观的方式来管理您的应用程序数据并将GraphQl无缝集成到您的React组件中。

如何在React中设置Zustand和Apollo客户端?

转到React应用的主页并粘贴此代码

"use client";

import { ApolloClient, InMemoryCache, ApolloProvider } from "@apollo/client";
import {create} from 'zustand';

type FormStore = {
  id: number;
  setId: (newId: number) => void;
  name: string;
  setName: (newName: string) => void;
  age: number;
  setAge: (newAge: number) => void;
  role: string;
  setRole: (newRole: string) => void;
  isEmployee: boolean;
  setIsEmployee: (newIsEmployee: boolean) => void;
  isUpdate: boolean;
  setIsUpdate: (newIsUpdate: boolean) => void;
};

export const useCounterStore = create<FormStore>((set) => ({
    id:100,
    setId:(newId:number) => set({ id: newId }),
    name:"User",
    setName:(newName:string) => set({ name: newName }),
    age:18,
    setAge:(newAge:number) => set({ age: newAge }),
    isEmployee:false,
    setIsEmployee:(newIsEmployee:boolean) => set({ isEmployee: newIsEmployee }),
    role:"Tester",
    setRole:(newRole:string) => set({ role: newRole }),
    isUpdate:false,
    setIsUpdate:(newIsUpdate:boolean) => set({ isUpdate: newIsUpdate })
}));

export default function UsersList() {

  const client = new ApolloClient({
    cache: new InMemoryCache(),
    uri: "http://localhost:4000/graphql",
  });


  return (
    <ApolloProvider client={client}>
        <main>
         {children}
        </main>
    </ApolloProvider>
  );
}
  • 首先,我们导入了所需的软件包
  • 然后,我们定义了在Zustand的全球商店中使用的字段类型。
  • 那么,我们必须创建Zustand存储,并传递这些状态的状态和设置函数的初始值。我们还将这家商店导出到其他组件中
  • 然后,我们通过传递GraphQL API和CACHE的2个参数URL来创建Apollo客户端的新实例,以设置数据的高速缓存值。然后,我们将此客户端实例传递给Apollo提供商客户端。

因此,我们已经设置了我们的全球状态和Apollo客户端以在我们的React应用程序中使用,在下一部分中,我们将讨论如何在React应用程序中获取数据并将其显示。

感谢您检查此帖子
您可以与我联系 -
Instagram -https://www.instagram.com/supremacism__shubh/
LinkedIn -https://www.linkedin.com/in/shubham-tiwari-b7544b193/
电子邮件-shubhmtiwri00@gmail.com

^^您可以在下面的链接上为我提供一些捐款,谢谢^^^
☕ --> https://www.buymeacoffee.com/waaduheck <--

也检查这些帖子
https://dev.to/shubhamtiwari909/website-components-you-should-know-25nm

https://dev.to/shubhamtiwari909/smooth-scrolling-with-js-n56

https://dev.to/shubhamtiwari909/swiperjs-3802

https://dev.to/shubhamtiwari909/custom-tabs-with-sass-and-javascript-4dej