📜  react js 和 graphql 集成 - Javascript (1)

📅  最后修改于: 2023-12-03 14:46:56.509000             🧑  作者: Mango

React JS 和 GraphQL 集成

React JS 和 GraphQL 是两个受欢迎的开发技术,他们能够协同工作来创建强大的前端应用程序。本文将介绍这两个技术的基础知识,并探讨如何在 React JS 中使用 GraphQL。

什么是 React JS?

React JS 是一个用于创建用户界面的 JavaScript 库。它由 Facebook 开发,旨在简化前端应用程序的开发。React 使用组件化编程,可以将 UI 拆分成小型且独立的组件。这使得代码更加可重复使用、可靠和可维护。React 还使用虚拟 DOM 技术,以提高性能和用户体验。

什么是 GraphQL?

GraphQL 是一种 API 查询语言。它由 Facebook 创建,旨在简化数据获取过程。GraphQL 允许客户端指定所需数据的结构和字段,从而消除了不必要的数据传输。这简化了开发过程,提高了应用程序的性能。

如何在 React JS 中使用 GraphQL?

在 React JS 中使用 GraphQL,您需要先安装必要的软件包。您需要安装 Apollo Client,这是一个用于管理客户端与 GraphQL 服务器之间的通信的软件包。

npm install apollo-boost @apollo/react-hooks graphql

然后,您需要将 Apollo Client 配置为与您的 GraphQL 服务器通信。在您的客户端代码中,您需要将 Apollo Client 导入并将其包装在一个提供程序组件中。这将使得 Apollo Client 可以在 React 组件中被使用。

import React from 'react';
import { ApolloProvider } from '@apollo/react-hooks';
import ApolloClient from 'apollo-boost';

const client = new ApolloClient({
   uri: 'YOUR_GRAPHQL_SERVER_URL',
});

const App = () => (
   <ApolloProvider client={client}>
      <div>Your React Components Here</div>
   </ApolloProvider>
);

export default App;

在这里,我们创建了一个 ApolloClient,设置了它与我们的 GraphQL 服务器通信的端点 URL,并将其导出到 App 组件中。您可以在您的 React 组件中使用 useQueryuseMutation 以及其他 Apollo React Hooks 来获取和更新数据。以下是一个使用 useQuery Hook 的示例:

import React from 'react';
import { useQuery } from '@apollo/react-hooks';
import gql from 'graphql-tag';

const GET_USERS = gql`
   query {
      users {
         id
         name
      }
   }
`;

const UserList = () => {
   const { loading, error, data } = useQuery(GET_USERS);

   if (loading) return <p>Loading...</p>;
   if (error) return <p>Error :(</p>;

   return data.users.map(({ id, name }) => (
      <div key={id}>
         <p>{name}</p>
      </div>
   ));
};

export default UserList;

这里,我们使用 GraphQL 查询语言来获取用户列表。我们只请求 ID 和名称字段,以减少不必要的数据传输。在组件中,我们使用 useQuery Hook 来获取数据,并根据加载状态和错误状态返回不同的 UI。最后,我们使用 Data 对象映射来显示用户列表。

结论

React JS 和 GraphQL 是两个强大的开发技术。将它们结合使用,可以创建出快速、响应和易于维护的前端应用程序。在本文中,我们介绍了如何在 React JS 中使用 GraphQL。如果您想开始尝试,请安装 Apollo Client 和 GraphQL,并按上述步骤操作。