برنامه نویسی

شروع کار با React Query

React Query یک کتابخانه قدرتمند برای مدیریت وضعیت سرور در برنامه های React شما است. این به شما امکان می‌دهد تا داده‌ها را به راحتی واکشی، کش و به‌روزرسانی کنید، بدون اینکه خودتان با پیچیدگی‌های مدیریت وضعیت مقابله کنید. در این پست وبلاگ، نحوه شروع با React Query و نحوه استفاده از آن در پروژه های خود را به شما آموزش خواهیم داد.

مرحله 1: React Query را نصب کنید

اولین قدم برای استفاده از React Query نصب آن است. با اجرای دستور زیر در ترمینال خود می توانید این کار را انجام دهید:

npm install react-query
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مرحله 2: React Query Provider را راه اندازی کنید

مرحله بعدی این است که React Query Provider را در برنامه خود راه اندازی کنید. این ارائه دهنده به شما امکان می دهد از React Query در سراسر برنامه خود استفاده کنید.

برای انجام این کار، باید برنامه خود را با کامپوننت QueryClientProvider بپیچید. این کامپوننت یک نمونه QueryClient را به عنوان یک پایه می گیرد. QueryClient شی اصلی است که برای تعامل با React Query از آن استفاده می کنید.

در اینجا مثالی از نحوه راه اندازی QueryClientProvider آورده شده است:

import { QueryClient, QueryClientProvider } from 'react-query';

const queryClient = new QueryClient();

function App() {
  return (
    <QueryClientProvider client={queryClient}>
      // Your application code goes here
    </QueryClientProvider>
  );
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مرحله 3: واکشی داده ها با React Query

اکنون که QueryClientProvider را راه اندازی کرده اید، آماده شروع واکشی داده ها با React Query هستید. ساده ترین راه برای انجام این کار استفاده از قلاب useQuery است.

قلاب useQuery دو آرگومان می گیرد: یک کلید منحصر به فرد برای درخواست شما و یک تابع که داده های شما را واکشی می کند. در اینجا یک مثال است:

import { useQuery } from 'react-query';

function App() {
  const { isLoading, error, data } = useQuery('todos', () =>
    fetch('https://jsonplaceholder.typicode.com/todos').then(res =>
      res.json()
    )
  );

  if (isLoading) return <p>Loading...</p>;

  if (error) return <p>An error has occurred: {error.message}</p>;

  return (
    <ul>
      {data.map(todo => (
        <li key={todo.id}>{todo.title}</li>
      ))}
    </ul>
  );
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این مثال، ما داده‌ها را از JSONPlaceholder API واکشی می‌کنیم و آن‌ها را در یک لیست نمایش می‌دهیم.

مرحله 4: به روز رسانی داده ها با React Query

React Query همچنین به روز رسانی داده ها را در پاسخ به اقدامات کاربر آسان می کند. قلاب useMutation به شما امکان می دهد یک تابع جهش تعریف کنید که داده های شما را در سرور به روز می کند.

در اینجا مثالی از نحوه استفاده از useMutation آورده شده است:

import { useMutation, useQueryClient } from 'react-query';

function AddTodo() {
  const [text, setText] = useState('');
  const queryClient = useQueryClient();

  const addTodoMutation = useMutation(
    text =>
      fetch('https://jsonplaceholder.typicode.com/todos', {
        method: 'POST',
        body: JSON.stringify({
          title: text,
          completed: false,
          userId: 1,
        }),
        headers: {
          'Content-type': 'application/json; charset=UTF-8',
        },
      }).then(res => res.json()),
    {
      onSuccess: () => {
        queryClient.invalidateQueries('todos');
      },
    }
  );

  const handleSubmit = event => {
    event.preventDefault();
    addTodoMutation.mutate(text);
    setText('');
  };

  return (
    <form onSubmit={handleSubmit}>
<input
  type="text"
  value={text}
  onChange={event => setText(event.target.value)}
/>
<button disabled={addTodoMutation.isLoading}>Add Todo</button>
  </form>
  );
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این مثال، ما یک تابع جهش را تعریف می کنیم که یک کار جدید به API ما اضافه می کند. وقتی جهش موفقیت آمیز بود، کوئری todos را باطل می کنیم تا داده ها را دوباره واکشی کنیم و UI را به روز کنیم.

مرحله 5: ذخیره داده ها با React Query

یکی از قدرتمندترین ویژگی های React Query سیستم کش آن است. React Query به طور خودکار داده‌های شما را در حافظه پنهان ذخیره می‌کند و هنگام درخواست به API، آن‌ها را به‌روز نگه می‌دارد.

در اینجا مثالی از نحوه استفاده از کش با React Query آورده شده است:

import { useQuery } from 'react-query';

function App() {
  const { isLoading, error, data } = useQuery('todos', () =>
    fetch('https://jsonplaceholder.typicode.com/todos').then(res =>
      res.json()
    )
  );

  if (isLoading) return <p>Loading...</p>;

  if (error) return <p>An error has occurred: {error.message}</p>;

  return (
    <ul>
      {data.map(todo => (
        <li key={todo.id}>{todo.title}</li>
      ))}
    </ul>
  );
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این مثال، ما از همان قلاب useQuery مانند قبل استفاده می کنیم، اما اکنون React Query به طور خودکار داده های ما را کش می کند. وقتی درخواست‌های بعدی را برای داده‌های todos انجام می‌دهیم، React Query به جای درخواست جدید، داده‌های کش شده را برمی‌گرداند.

مرحله 6: نتیجه گیری

خودشه! اکنون یاد گرفته‌اید که چگونه React Query را شروع کنید و چگونه از آن برای واکشی، به‌روزرسانی و کش کردن داده‌ها در برنامه‌های React خود استفاده کنید.

React Query ابزار قدرتمندی است که می تواند در مدیریت وضعیت برنامه شما در زمان و تلاش شما صرفه جویی کند. با استفاده از API آسان و سیستم کش قدرتمند، قطعاً ارزش آن را دارد که برای پروژه بعدی خود در نظر بگیرید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا