>웹 프론트엔드 >JS 튜토리얼 >React Query에서 데이터 연결 및 통합 쿼리를 구현하는 방법은 무엇입니까?

React Query에서 데이터 연결 및 통합 쿼리를 구현하는 방법은 무엇입니까?

WBOY
WBOY원래의
2023-09-26 15:58:42693검색

如何在 React Query 中实现数据关联和联合查询?

React Query에서 데이터 연관 및 통합 쿼리를 구현하는 방법은 무엇입니까?

최신 애플리케이션이 점점 더 복잡해짐에 따라 데이터 연결 및 공동 쿼리가 개발 시 일반적인 요구 사항이 되었습니다. React 개발에서는 일반적으로 React Query를 사용하여 데이터 수집 및 관리를 처리합니다. React Query는 강력한 쿼리 기능을 제공하여 데이터 상관 관계 및 공동 쿼리를 쉽게 구현할 수 있습니다. 이 기사에서는 React Query에서 데이터 상관 관계 및 통합 쿼리를 구현하는 방법을 소개하고 몇 가지 구체적인 코드 예제를 제공합니다.

  1. 데이터 연관
    데이터 연관이란 관련된 여러 데이터를 연결하고, 연관된 데이터를 통해 이를 질의하고 표시하는 것을 말합니다. React Query의 상관관계는 useQuery를 사용하여 수행할 수 있습니다. 다음은 사용자와 해당 주문 데이터를 연결하는 방법을 보여주는 간단한 예입니다.
import { useQuery } from 'react-query';

function UserOrders({ userId }) {
  const userQuery = useQuery('user', () => fetchUser(userId));
  
  // 在用户数据加载成功后,获取到用户的订单数据
  const orderQuery = useQuery(['orders', userId], () => fetchOrders(userId), {
    enabled: !!userQuery.data,
  });
  
  if (userQuery.isLoading) {
    return <div>Loading user...</div>;
  }
  
  if (userQuery.error) {
    return <div>Error: {userQuery.error.message}</div>;
  }
  
  return (
    <div>
      <h1>User: {userQuery.data.name}</h1>
      {orderQuery.isLoading ? (
        <div>Loading orders...</div>
      ) : orderQuery.error ? (
        <div>Error: {orderQuery.error.message}</div>
      ) : (
        <ul>
          {orderQuery.data.map((order) => (
            <li key={order.id}>
              Order #{order.id}: {order.product}
            </li>
          ))}
        </ul>
      )}
    </div>
  );
}

위 예에서는 두 개의 useQuery 후크를 사용하여 사용자 및 주문 데이터를 각각 가져왔습니다. 사용자 데이터가 성공적으로 로드되면 주문 데이터가 로드되고 사용자 ID를 기준으로 사용자와 주문 데이터가 연결됩니다. 이렇게 하면 주문 데이터가 로드될 때 사용자 데이터를 이미 사용할 수 있습니다.

  1. Union 쿼리
    Union 쿼리는 여러 소스에서 데이터를 가져와 하나의 데이터 개체로 병합하는 것을 말합니다. React Query의 Union 쿼리는 useQueries를 사용하여 수행할 수 있습니다. 다음은 사용자와 해당 주문 데이터를 공동으로 쿼리하는 방법을 보여주는 간단한 예입니다.
import { useQueries } from 'react-query';

function UsersAndOrders() {
  const usersQuery = useQueries([
    { queryKey: 'users', queryFn: fetchUsers },
    { queryKey: 'orders', queryFn: fetchOrders },
  ]);
  
  if (usersQuery.some((query) => query.isLoading)) {
    return <div>Loading users and orders...</div>;
  }
  
  if (usersQuery.some((query) => query.error)) {
    return <div>Error loading users and orders</div>;
  }
  
  const users = usersQuery.find((query) => query.queryKey === 'users').data;
  const orders = usersQuery.find((query) => query.queryKey === 'orders').data;
  
  return (
    <div>
      <h1>Users and Orders</h1>
      <ul>
        {users.map((user) => (
          <li key={user.id}>
            User: {user.name}
            <ul>
              {orders
                .filter((order) => order.userId === user.id)
                .map((order) => (
                  <li key={order.id}>
                    Order #{order.id}: {order.product}
                  </li>
                ))}
            </ul>
          </li>
        ))}
      </ul>
    </div>
  );
}

위의 예에서는 useQueries 후크를 사용하여 각 쿼리 키를 유지하면서 두 쿼리를 하나의 배열로 병합했습니다(queryKey: ' 사용자' 및 queryKey: '주문'). 그런 다음 쿼리 결과를 탐색하여 사용자 및 주문 데이터를 얻고 사용자 ID를 기반으로 사용자 및 주문 데이터를 연결할 수 있습니다.

요약
React Query는 강력한 쿼리 기능을 제공하여 데이터 상관 관계 및 공동 쿼리를 쉽게 구현할 수 있습니다. 데이터 연결에서는 useQuery 후크를 사용하여 여러 관련 데이터를 연결하고 연결된 데이터를 통해 쿼리하고 표시할 수 있습니다. 공동 쿼리에서는 useQueries 후크를 사용하여 여러 쿼리를 배열로 결합하고 다양한 소스의 데이터를 결합, 필터링 및 표시할 수 있습니다.

위의 예를 통해 React Query가 매우 유연하고 사용하기 쉬워 복잡한 데이터 쿼리 요구 사항을 처리하는 데 도움이 된다는 것을 알 수 있습니다. 이 기사가 React 개발에서 데이터 상관 관계 및 통합 쿼리를 구현하는 데 도움이 되었기를 바랍니다.

위 내용은 React Query에서 데이터 연결 및 통합 쿼리를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.