{"id":73659,"date":"2024-08-16T17:39:29","date_gmt":"2024-08-16T14:09:29","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/mastering-react-query-simplifying-data-management-in-react-with-separation-patterns-4p7a\/"},"modified":"2024-08-16T17:39:29","modified_gmt":"2024-08-16T14:09:29","slug":"mastering-react-query-simplifying-data-management-in-react-with-separation-patterns-4p7a","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/mastering-react-query-simplifying-data-management-in-react-with-separation-patterns-4p7a\/","title":{"rendered":"\u062a\u0633\u0644\u0637 \u0628\u0631 React Query \u0633\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647 \u0647\u0627 \u062f\u0631 React with Separation Patterns"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang <\/p>\n<p>\u062f\u0631 \u0627\u06a9\u062b\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0641\u0631\u0627\u0646\u062a \u0627\u0646\u062f\u060c React Query \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u067e\u0644\u06cc \u0628\u06cc\u0646 \u0633\u0631\u0648\u0631 \u0648 \u0641\u0631\u0627\u0646\u062a \u0627\u0646\u062f \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0627 \u0622\u0646\u060c \u0634\u0645\u0627 \u0646\u0647 \u062a\u0646\u0647\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f\u060c \u0628\u0644\u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0631\u0627 \u0646\u06cc\u0632 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f. \u0647\u0631\u0686\u0647 \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 React Query \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645\u060c \u0628\u06cc\u0634\u062a\u0631 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0627\u0646\u062a\u0632\u0627\u0639 \u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0648 \u06a9\u067e\u0633\u0648\u0644\u0647 \u06a9\u0631\u062f\u0646 \u06a9\u062f \u0641\u06a9\u0631 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0686\u0646\u062f \u0633\u0627\u0644 \u067e\u06cc\u0634\u060c \u0628\u0627 Redux\u060c \u0645\u0627 \u0628\u06cc\u0634\u062a\u0631 \u0645\u0646\u0637\u0642 \u06a9\u0633\u0628 \u0648 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u062f\u0631 \u0633\u0637\u062d \u06a9\u0627\u0647\u0646\u062f\u0647 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u06cc\u0645\u060c \u06a9\u0647 \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u0627\u0646\u062a\u0632\u0627\u0639\u06cc \u062e\u0648\u0628 \u0627\u0631\u0627\u0626\u0647 \u062f\u0627\u062f \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0645\u0646\u0637\u0642 \u062a\u062c\u0627\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0627\u0632 \u0645\u0624\u0644\u0641\u0647\u200c\u0647\u0627 \u062c\u062f\u0627 \u06a9\u0646\u06cc\u0645. \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0628\u0627 React Query\u060c \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 \u0628\u0627 \u0645\u0646\u0637\u0642 \u062f\u0631 \u0645\u0648\u0631\u062f \u0686\u06af\u0648\u0646\u06af\u06cc \u0648 \u0632\u0645\u0627\u0646 \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u060c \u06a9\u0627\u0631\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0647\u0646\u06af\u0627\u0645 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u0631 \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f \u0648 \u063a\u06cc\u0631\u0647 \u0634\u0631\u0648\u0639 \u0628\u0647 \u0631\u0634\u062f \u06a9\u0631\u062f\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u06a9\u067e\u0633\u0648\u0644\u0647 \u0633\u0627\u0632\u06cc \u0648 \u0633\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0645\u0637\u0631\u062d \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f\u0646 \u0627\u062c\u0632\u0627\u06cc \u0634\u0645\u0627 \u0628\u0647 \u062d\u0627\u0644\u062a \u0648\u0627\u0636\u062d\u200c\u062a\u0631 \u0648 \u0646\u062d\u0648\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0646\u0637\u0642 \u0648\u0627\u06a9\u0634\u06cc \u0631\u0627 \u0634\u0631\u062d \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0628\u0647\u200c\u0648\u06cc\u0698\u0647 \u062f\u0631 \u0645\u0648\u0631\u062f \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u00ab\u062c\u062f\u0627\u06cc\u06cc \u067e\u0631\u0633 \u0648 \u062c\u0648\u06cc \u0631\u0627\u06cc\u062c\u00bb \u0648 \u00ab\u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0646\u06af\u0631\u0627\u0646\u06cc\u200c\u0647\u0627\u00bb \u0628\u0627 React \u0628\u062d\u062b \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>\u0642\u0644\u0627\u0628 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u062f\u0631 React \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0631\u0627\u0647 \u062d\u0644\u06cc \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u0632\u0627\u0639 \u0645\u0646\u0637\u0642 \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u0645\u0639\u0631\u0641\u06cc \u0634\u062f\u0646\u062f. \u0622\u0646\u0647\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u0628\u062e\u0634\u06cc \u0627\u0632 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0648\u0644\u062a\u06cc \u06cc\u0627 \u0645\u0646\u0637\u0642 \u062a\u062c\u0627\u0631\u06cc \u0631\u0627 \u0628\u0647 \u0642\u0644\u0627\u0628 \u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u06cc\u062f. \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0628\u062f\u0648\u0646 \u0647\u062f\u0641 \u0645\u0634\u062e\u0635\u060c \u0627\u06cc\u062c\u0627\u062f \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0642\u0644\u0627\u0628 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u067e\u0631\u0648\u0698\u0647 \u0631\u0627 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u06a9\u0646\u062f. \u0627\u0632 \u0633\u0648\u06cc \u062f\u06cc\u06af\u0631\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0627\u0642\u0644\u0627\u0646\u0647 \u0627\u0632 \u0642\u0644\u0627\u0628 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0645\u0632\u0627\u06cc\u0627\u06cc \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u06a9\u062f \u0634\u0645\u0627 \u0628\u0647 \u0627\u0631\u0645\u063a\u0627\u0646 \u0628\u06cc\u0627\u0648\u0631\u062f.<\/p>\n<p>\u062f\u0631 React\u060c \u062a\u0641\u0627\u0648\u062a \u0628\u06cc\u0646 \u06cc\u06a9 \u0647\u0648\u06a9 \u0633\u0641\u0627\u0631\u0634\u06cc \u0648 \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0645\u0639\u0645\u0648\u0644\u06cc \u062f\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0642\u0644\u0627\u0628\u200c\u0647\u0627\u06cc React \u0646\u0647\u0641\u062a\u0647 \u0627\u0633\u062a useState\u060c useEffect\u0648 \u063a\u06cc\u0631\u0647. \u0628\u0647 \u0632\u0628\u0627\u0646 \u0633\u0627\u062f\u0647\u060c \u0642\u0644\u0627\u0628\u200c\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0627\u0632 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0686\u0631\u062e\u0647 \u0639\u0645\u0631 React \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062a\u0648\u0627\u0628\u0639 \u0645\u0639\u0645\u0648\u0644\u06cc \u0627\u06cc\u0646\u0637\u0648\u0631 \u0646\u06cc\u0633\u062a\u0646\u062f.<\/p>\n<p>export const useFetchUsers = () =&gt; {<br \/>\n  const [users, setUsers] = useState([]);<br \/>\n  const [isLoading, setIsLoading] = useState(true);<br \/>\n  const [error, setError] = useState(null);<\/p>\n<p>  useEffect(() =&gt; {<br \/>\n    \/\/ Function to fetch users from the API<br \/>\n    const fetchUsers = async () =&gt; {<br \/>\n      try {<br \/>\n        const response = await axios.get(&#8216;https:\/\/jsonplaceholder.typicode.com\/users&#8217;);<br \/>\n        setUsers(response.data);<br \/>\n        setIsLoading(false);<br \/>\n      } catch (err) {<br \/>\n        setError(err);<br \/>\n        setIsLoading(false);<br \/>\n      }<br \/>\n    };<\/p>\n<p>    fetchUsers();<br \/>\n  }, []);<\/p>\n<p>  return { users, isLoading, error };<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0647 \u0647\u0645\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0642\u0644\u0627\u0628\u200c\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u062a\u0648\u0627\u0628\u0639 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u0645 \u0648 \u0628\u0647 \u0627\u06cc\u0646 \u0641\u06a9\u0631 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0645\u0646\u0637\u0642 \u0631\u0627 \u062f\u0631 \u0622\u0646\u0647\u0627 \u0627\u0646\u062a\u0632\u0627\u0639 \u06a9\u0646\u06cc\u0645\u060c \u062f\u0631\u0633\u062a \u0645\u0627\u0646\u0646\u062f \u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u06cc\u0627 \u062a\u0648\u0627\u0628\u0639 \u0645\u0639\u0645\u0648\u0644\u06cc.<\/p>\n<p>\u0642\u0644\u0627\u0628\u200c\u0647\u0627\u06cc React Query \u0639\u0645\u0644\u06a9\u0631\u062f \u06af\u0633\u062a\u0631\u062f\u0647\u200c\u0627\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0646\u0645\u0648\u0646\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u062a\u0646\u0647\u0627 \u0628\u0627 \u0686\u0646\u062f \u062e\u0637 \u06a9\u062f \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u0646\u062f:<\/p>\n<p>export const useUsersQuery = () =&gt; {<br \/>\n  return useQuery(<br \/>\n      queryKey: usersQueryKeys.list(),<br \/>\n      queryFn: fetchUsers<br \/>\n  );<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06af\u0631 \u0639\u0644\u0627\u0642\u0647 \u0645\u0646\u062f \u0628\u0647 \u0627\u06cc\u062c\u0627\u062f \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0647\u0633\u062a\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u06cc\u0634\u062a\u0631\u06cc \u0631\u0627 \u062f\u0631 \u0645\u0642\u0627\u0644\u0647 \u0645\u0646 Mastering React Query \u0628\u06cc\u0627\u0628\u06cc\u062f. \u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u062f \u062e\u0648\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f<\/p>\n<p>\u062f\u0631 \u0648\u0627\u0642\u0639\u06cc\u062a\u060c \u06a9\u0627\u0631 \u0628\u0627 React Query \u0627\u063a\u0644\u0628 \u0628\u0647 \u0645\u0646\u0637\u0642 \u0627\u0636\u0627\u0641\u06cc \u067e\u0633 \u0627\u0632 \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644:<\/p>\n<p>\u067e\u0631\u0633 \u0648 \u062c\u0648\u0647\u0627\u06cc \u062a\u0648\u062f\u0631\u062a\u0648: \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u06cc\u06a9 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0628\u0647 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0633\u062a\u06af\u06cc \u062f\u0627\u0631\u062f.<br \/>\n\u062a\u0628\u062f\u06cc\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627<br \/>\n\u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 \u0633\u0631\u0648\u0631<br \/>\n\u0648\u0627\u06a9\u0634\u06cc \u0645\u062c\u062f\u062f \u062f\u0627\u062f\u0647 \u0647\u0627 \u0647\u0646\u06af\u0627\u0645 \u062a\u063a\u06cc\u06cc\u0631 \u0686\u06cc\u0632\u06cc (\u0645\u0627\u0646\u0646\u062f \u062a\u063a\u06cc\u06cc\u0631 \u0641\u06cc\u0644\u062a\u0631).<\/p>\n<p>\u0627\u0644\u0628\u062a\u0647\u060c \u0634\u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u0645\u0627\u0645 \u0627\u06cc\u0646 \u0645\u0646\u0637\u0642 \u0631\u0627 \u062f\u0631 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u06cc \u06a9\u0647 React Query Hook \u0645\u06cc\u200c\u0646\u0627\u0645\u06cc\u062f \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0627\u063a\u0644\u0628 \u0628\u0647 \u0627\u062c\u0632\u0627\u06cc\u06cc \u0628\u0627 \u0645\u0646\u0637\u0642 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0632\u06cc\u0627\u062f\u06cc \u0645\u0646\u062c\u0631 \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u067e\u06cc\u06af\u06cc\u0631\u06cc \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0634\u0648\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0646\u0645\u0648\u0646\u0647 \u0627\u06cc \u0627\u0632 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u06cc \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u0645 \u06a9\u0647 \u0627\u0632 React Query \u0628\u062f\u0648\u0646 \u0642\u0644\u0627\u0628 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<p>const UsersComponent = () =&gt; {<br \/>\n  const { data: users, error, isLoading } = useQuery([&#8216;users&#8217;], fetchUsers, {<br \/>\n    staleTime: 30000,  \/\/ Cache data for 30 seconds<br \/>\n    refetchOnWindowFocus: false, \/\/ Disable refetch on window focus<br \/>\n  });<\/p>\n<p>  \/\/ Data transformation<br \/>\n  const activeUsers = users?.filter(user =&gt; user.isActive);<\/p>\n<p>  if (isLoading) return p&gt;Loading&#8230;\/p&gt;;<br \/>\n  if (error) return p&gt;Error loading users: {error.message}\/p&gt;;<\/p>\n<p>  return (<br \/>\n    ul&gt;<br \/>\n      {activeUsers.map(user =&gt; (<br \/>\n        li key={user.id}&gt;<br \/>\n          {user.name} ({user.email})<br \/>\n        \/li&gt;<br \/>\n      ))}<br \/>\n    \/ul&gt;<br \/>\n  );<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0646\u06af\u0627\u0647 \u0627\u0648\u0644\u060c \u0627\u06cc\u0646 \u06a9\u062f \u062e\u0648\u0628 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f\u060c \u0627\u0645\u0627 \u062f\u0631 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u067e\u06cc\u0686\u06cc\u062f\u0647\u060c \u0645\u0646\u0637\u0642 \u0627\u06cc\u0646 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0633\u0631\u0639\u062a \u0631\u0634\u062f \u06a9\u0646\u062f \u0648 \u067e\u06cc\u0631\u0648\u06cc \u0627\u0632 \u0622\u0646 \u0631\u0627 \u062f\u0634\u0648\u0627\u0631\u062a\u0631 \u06a9\u0646\u062f \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0631\u0627 \u06a9\u0627\u0647\u0634 \u062f\u0647\u062f.<\/p>\n<p>\u062d\u0627\u0644\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 \u0628\u0627 \u0627\u0646\u062a\u0632\u0627\u0639 \u0642\u0644\u0627\u0628 \u0633\u0641\u0627\u0631\u0634\u06cc \u0646\u06af\u0627\u0647 \u06a9\u0646\u06cc\u0645:<\/p>\n<p>const useFetchActiveUsers = () =&gt; {<br \/>\n  const query = useQuery([&#8216;users&#8217;], fetchUsers, {<br \/>\n    staleTime: 30000,  \/\/ Cache data for 30 seconds<br \/>\n    refetchOnWindowFocus: false, \/\/ Disable refetch on window focus<br \/>\n  });<\/p>\n<p>  \/\/ Additional logic: filtering active users<br \/>\n  const activeUsers = query.data?.filter(user =&gt; user.isActive);<\/p>\n<p>  return { &#8230;query, data: activeUsers };<br \/>\n};<\/p>\n<p>const UsersComponent = () =&gt; {<br \/>\n  const { data: activeUsers, error, isLoading } = useActiveUsersQuery();<\/p>\n<p>  if (isLoading) return p&gt;Loading&#8230;\/p&gt;;<br \/>\n  if (error) return p&gt;Error loading users: {error.message}\/p&gt;;<\/p>\n<p>  return (<br \/>\n    ul&gt;<br \/>\n      {activeUsers.map(user =&gt; (<br \/>\n        li key={user.id}&gt;<br \/>\n          {user.name} ({user.email})<br \/>\n        \/li&gt;<br \/>\n      ))}<br \/>\n    \/ul&gt;<br \/>\n  );<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0645\u0627 \u0627\u0644\u06af\u0648\u06cc \u00ab\u062a\u0641\u06a9\u06cc\u06a9 \u0646\u06af\u0631\u0627\u0646\u06cc\u200c\u0647\u0627\u00bb \u06cc\u0627 \u00ab\u0627\u0635\u0644 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0648\u0627\u062d\u062f\u00bb \u0631\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0631\u062f\u06cc\u0645\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0647\u0645\u0647 \u0645\u0646\u0637\u0642 \u0648\u0627\u06a9\u0634\u06cc \u0631\u0627 \u0628\u0647 \u062e\u0627\u0631\u062c \u0627\u0632 \u0645\u0624\u0644\u0641\u0647 UI \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u062f\u06cc\u0645. \u0627\u06a9\u0646\u0648\u0646\u060c \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0635\u0631\u0641\u0627\u064b \u0628\u0631 \u0631\u0648\u06cc \u0631\u0646\u062f\u0631 \u06a9\u0631\u062f\u0646 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0645\u062a\u0645\u0631\u06a9\u0632 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 API \u0648 React Query\u060c \u062f\u0648 \u0642\u0644\u0627\u0628 \u0627\u0635\u0644\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f: useQuery \u0648 useMutation. \u0627\u06cc\u0646 useQuery \u0647\u0648\u06a9 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u0648\u0627\u06a9\u0634\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0627\u0632 \u06a9\u0634 \u0628\u0631\u0627\u06cc \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0645\u0646\u0637\u0642 \u0648\u0627\u06a9\u0634\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 useMutation \u0647\u0648\u06a9 \u062f\u0631 \u062f\u0631\u062c\u0647 \u0627\u0648\u0644 \u0628\u0631\u0627\u06cc \u062c\u0647\u0634 \u062f\u0627\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0642\u0644\u0627\u0628 \u0647\u0627 \u0645\u062a\u0641\u0627\u0648\u062a \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u0646\u062f \u0648 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0627\u06cc\u0646 \u0642\u0644\u0627\u0628 \u0647\u0627 \u0639\u0645\u062f\u06cc \u0627\u0633\u062a.<\/p>\n<p>\u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u06a9\u062f \u062f\u0646\u06cc\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc\u060c \u0647\u0646\u06af\u0627\u0645 \u0627\u0646\u062a\u0632\u0627\u0639 React Query\u060c \u0645\u0639\u0645\u0648\u0644 \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 \u0647\u0648\u06a9 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645 \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0648\u0627\u06a9\u0634\u06cc \u0648 \u062c\u0647\u0634 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u062a\u0641\u0627\u0642 \u0645\u06cc\u200c\u0627\u0641\u062a\u062f:<\/p>\n<p>export const useUser = (userId) =&gt; {<br \/>\n  const queryClient = useQueryClient();<\/p>\n<p>  \/\/ Fetch all users<br \/>\n  const usersQuery = useQuery([&#8216;users&#8217;], fetchUsers, {<br \/>\n    staleTime: 30000,  \/\/ Cache data for 30 seconds<br \/>\n    refetchOnWindowFocus: false, \/\/ Disable refetch on window focus<br \/>\n  });<\/p>\n<p>  \/\/ Fetch a single user by ID (optional)<br \/>\n  const userQuery = useQuery([&#8216;user&#8217;, userId], () =&gt; fetchUserById(userId), {<br \/>\n    enabled: !!userId, \/\/ Only run this query if a userId is provided<br \/>\n  });<\/p>\n<p>  \/\/ Mutation for updating user data<br \/>\n  const mutation = useMutation(updateUser, {<br \/>\n    onSuccess: () =&gt; {<br \/>\n      \/\/ Invalidate and refetch users data after a successful update<br \/>\n      queryClient.invalidateQueries([&#8216;users&#8217;]);<br \/>\n      if (userId) {<br \/>\n        queryClient.invalidateQueries([&#8216;user&#8217;, userId]);<br \/>\n      }<br \/>\n    },<br \/>\n  });<\/p>\n<p>  \/\/ Function to update a user<br \/>\n  const updateUserDetails = (userId, updatedData) =&gt; {<br \/>\n    mutation.mutate({ userId, updatedData });<br \/>\n  };<\/p>\n<p>  return {<br \/>\n    users: usersQuery.data,<br \/>\n    isLoadingUsers: usersQuery.isLoading,<br \/>\n    isErrorUsers: usersQuery.isError,<br \/>\n    user: userQuery.data,<br \/>\n    isLoadingUser: userQuery.isLoading,<br \/>\n    isErrorUser: userQuery.isError,<br \/>\n    updateUserDetails,<br \/>\n    isUpdating: mutation.isLoading,<br \/>\n    updateError: mutation.isError,<br \/>\n  };<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0646\u06af\u0627\u0647 \u0627\u0648\u0644\u060c \u0647\u06cc\u0686 \u0645\u0634\u06a9\u0644\u06cc \u062f\u0631 \u0627\u06cc\u0646 \u0642\u0644\u0627\u0628 \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f\u060c \u0627\u0645\u0627 &#8220;\u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc&#8221; \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u063a\u0644\u0628 \u0628\u0647 \u0645\u0646\u0637\u0642 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f\u060c \u0645\u0627\u0646\u0646\u062f \u0622\u0645\u0627\u062f\u0647 \u06a9\u0631\u062f\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u0631\u060c \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u0647\u0627\u06cc \u062e\u0627\u0635 \u0645\u0627\u0646\u0646\u062f \u0627\u0639\u062a\u0628\u0627\u0631 \u0633\u0646\u062c\u06cc \u0648 \u063a\u06cc\u0631\u0647.<\/p>\n<p>\u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u0645 \u00ab\u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u067e\u0631\u0633 \u0648 \u062c\u0648\u06cc \u0631\u0627\u06cc\u062c\u00bb \u0627\u0633\u062a \u06a9\u0647 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u062f\u0631 \u0642\u0633\u0645\u062a \u067e\u0634\u062a\u06cc\u0628\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u067e\u0631\u0633 \u0648 \u062c\u0648\u06cc \u062f\u0633\u062a\u0648\u0631\u06cc (CQS) \u06cc\u06a9 \u0627\u0635\u0644 \u0637\u0631\u0627\u062d\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631\u060c \u0628\u0647 \u0648\u06cc\u0698\u0647 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0634\u06cc \u06af\u0631\u0627\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0628\u06cc\u0646 \u0631\u0648\u0634 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0639\u0645\u0627\u0644 (\u0641\u0631\u0645\u0627\u0646 \u0647\u0627) \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u0646\u062f \u0648 \u0631\u0648\u0634 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f (\u067e\u0631\u0633 \u0648 \u062c\u0648\u0647\u0627) \u062a\u0645\u0627\u06cc\u0632 \u0642\u0627\u0626\u0644 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0627\u0635\u0644 \u0627\u0635\u0644\u06cc \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0627\u0633\u062a get \u0645\u0646\u0637\u0642 \u0627\u0632 mutation (\u06cc\u0627 commands \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647 \u0627\u0635\u0644\u06cc). \u062f\u0631 React\u060c \u0645\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc API \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0646\u0645\u06cc\u200c\u062f\u0647\u06cc\u0645\u060c \u0627\u0645\u0627 \u0628\u0627 React Query\u060c \u0627\u06cc\u0646 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 useQuery \u0648 useMutation \u0642\u0644\u0627\u0628 \u0647\u0627<\/p>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u0639\u0645\u0627\u0644 \u0627\u06cc\u0646 \u0627\u0644\u06af\u0648\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0622\u0646 \u0631\u0627 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u06cc\u0645 useUser \u0628\u0647 \u062f\u0648 \u0642\u0644\u0627\u0628 \u0645\u062c\u0632\u0627 \u0642\u0644\u0627\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<p>const useUserQuery = (userId) =&gt; {<br \/>\n  \/\/ Fetch a single user by ID (optional)<br \/>\n  const {data: user, isLoading, isError} = useQuery([&#8216;user&#8217;, userId], () =&gt; fetchUserById(userId), {<br \/>\n    enabled: !!userId, \/\/ Only run this query if a userId is provided<br \/>\n  });<\/p>\n<p>  return {<br \/>\n    user,<br \/>\n    isLoading,<br \/>\n    isError,<br \/>\n  };<br \/>\n};<\/p>\n<p>const useUserMutation = () =&gt; {<br \/>\n  const queryClient = useQueryClient();<\/p>\n<p>  \/\/ Mutation for updating user data<br \/>\n  const mutation = useMutation(updateUser, {<br \/>\n    onSuccess: (_, { userId }) =&gt; {<br \/>\n      \/\/ Invalidate and refetch users data after a successful update<br \/>\n      queryClient.invalidateQueries([&#8216;users&#8217;]);<br \/>\n      if (userId) {<br \/>\n        queryClient.invalidateQueries([&#8216;user&#8217;, userId]);<br \/>\n      }<br \/>\n    },<br \/>\n  });<\/p>\n<p>  return {<br \/>\n    updateUserDetails: mutation.mutate,<br \/>\n    isUpdating: mutation.isLoading,<br \/>\n    isError: mutation.isError,<br \/>\n  };<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06cc\u0646 \u062c\u062f\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0645\u0627 \u0645\u0632\u0627\u06cc\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f:<\/p>\n<p>\u0645\u062f\u0648\u0644\u0627\u0631 \u0628\u0648\u062f\u0646: \u0647\u0631 \u0642\u0644\u0627\u0628 \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0645\u062a\u0645\u0631\u06a9\u0632 \u0627\u0633\u062a \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0645\u0646\u0637\u0642 \u0631\u0627 \u0622\u0633\u0627\u0646 \u062a\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f: \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f useUserQuery \u0648 useUserMutation \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u0644 \u062f\u0631 \u0633\u0627\u06cc\u0631 \u0628\u062e\u0634 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627.<\/p>\n<p>\u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc: \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0631\u0634\u062f \u0645\u06cc \u06a9\u0646\u062f\u060c \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0646\u06af\u0631\u0627\u0646\u06cc \u0647\u0627 \u0628\u0647 \u062d\u0641\u0638 \u0648 \u0645\u0642\u06cc\u0627\u0633 \u0628\u0646\u062f\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f \u067e\u0627\u06cc\u06af\u0627\u0647 \u06a9\u062f \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0646 \u06a9\u0627\u0631\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u0642\u0644\u0627\u0628 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f \u0628\u0647 \u062f\u06cc\u06af\u0631 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u06a9\u0647 postfix \u0631\u0627 \u0628\u0627 \u062a\u0648\u0636\u06cc\u062d\u0627\u062a\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u0647\u0648\u06a9 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f. \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0627\u0634\u062f Query \u0648 Mutation \u06cc\u0627 \u067e\u0633\u0648\u0646\u062f\u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u0628\u06cc\u0634\u062a\u0631 \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u06a9\u062f \u0634\u0645\u0627.<\/p>\n<p>\u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0627 \u0645\u0634\u06a9\u0644 \u0627\u062c\u0632\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0645\u0648\u0627\u062c\u0647 \u0634\u0648\u0646\u062f \u06a9\u0647 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0627\u0632 \u0645\u0646\u0637\u0642 \u0645\u062e\u062a\u0644\u0641 \u0648 \u0631\u0646\u062f\u0631 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0632\u0631\u06af \u062a\u0631\u06cc\u0646 \u0628\u062e\u0634 \u0622\u0646 \u0646\u06cc\u0633\u062a. \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u0645\u0627\u0646\u0646\u062f \u062a\u0641\u06a9\u06cc\u06a9 \u0646\u06af\u0631\u0627\u0646\u06cc \u0647\u0627 \u0648 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0631\u0627\u06cc\u062c\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u0645\u0639\u0645\u0627\u0631\u06cc \u062a\u0645\u06cc\u0632 \u0648 \u0645\u0627\u0698\u0648\u0644\u0627\u0631 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u062c\u0632\u0627\u06cc \u0634\u0645\u0627 \u0631\u0627 \u0628\u0631 \u0631\u0648\u06cc \u0631\u0646\u062f\u0631 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0645\u062a\u0645\u0631\u06a9\u0632 \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u062f \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u0645\u0646\u0637\u0642 \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647 \u0648 \u062c\u0647\u0634 \u0631\u0627 \u0628\u0647 \u0642\u0644\u0627\u0628 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0648\u0627\u06af\u0630\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u06af\u0646\u062c\u0627\u0646\u062f\u0646 \u0627\u06cc\u0646 \u0627\u0635\u0648\u0644 \u062f\u0631 \u06af\u0631\u062f\u0634 \u06a9\u0627\u0631 \u062a\u0648\u0633\u0639\u0647 React \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u062d\u0627\u0644\u062a \u0648 \u0633\u0631\u0648\u0631 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0624\u062b\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u062f\u0631 \u0637\u0648\u0644 \u062a\u06a9\u0627\u0645\u0644 \u0628\u0647 \u0622\u0633\u0627\u0646\u06cc \u0642\u0627\u0628\u0644 \u062f\u0631\u06a9 \u0648 \u06af\u0633\u062a\u0631\u0634 \u0627\u0633\u062a.<\/p>\n<div data-article-id=\"1961561\" id=\"article-body\">\n<p>\u062f\u0631 \u0627\u06a9\u062b\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0641\u0631\u0627\u0646\u062a \u0627\u0646\u062f\u060c React Query \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u067e\u0644\u06cc \u0628\u06cc\u0646 \u0633\u0631\u0648\u0631 \u0648 \u0641\u0631\u0627\u0646\u062a \u0627\u0646\u062f \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0627 \u0622\u0646\u060c \u0634\u0645\u0627 \u0646\u0647 \u062a\u0646\u0647\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f\u060c \u0628\u0644\u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0631\u0627 \u0646\u06cc\u0632 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f. \u0647\u0631\u0686\u0647 \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 React Query \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645\u060c \u0628\u06cc\u0634\u062a\u0631 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0627\u0646\u062a\u0632\u0627\u0639 \u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0648 \u06a9\u067e\u0633\u0648\u0644\u0647 \u06a9\u0631\u062f\u0646 \u06a9\u062f \u0641\u06a9\u0631 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0686\u0646\u062f \u0633\u0627\u0644 \u067e\u06cc\u0634\u060c \u0628\u0627 Redux\u060c \u0645\u0627 \u0628\u06cc\u0634\u062a\u0631 \u0645\u0646\u0637\u0642 \u06a9\u0633\u0628 \u0648 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u062f\u0631 \u0633\u0637\u062d \u06a9\u0627\u0647\u0646\u062f\u0647 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u06cc\u0645\u060c \u06a9\u0647 \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u0627\u0646\u062a\u0632\u0627\u0639\u06cc \u062e\u0648\u0628 \u0627\u0631\u0627\u0626\u0647 \u062f\u0627\u062f \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0645\u0646\u0637\u0642 \u062a\u062c\u0627\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0627\u0632 \u0645\u0624\u0644\u0641\u0647\u200c\u0647\u0627 \u062c\u062f\u0627 \u06a9\u0646\u06cc\u0645. \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0628\u0627 React Query\u060c \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 \u0628\u0627 \u0645\u0646\u0637\u0642 \u062f\u0631 \u0645\u0648\u0631\u062f \u0686\u06af\u0648\u0646\u06af\u06cc \u0648 \u0632\u0645\u0627\u0646 \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u060c \u06a9\u0627\u0631\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0647\u0646\u06af\u0627\u0645 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u0631 \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f \u0648 \u063a\u06cc\u0631\u0647 \u0634\u0631\u0648\u0639 \u0628\u0647 \u0631\u0634\u062f \u06a9\u0631\u062f\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u06a9\u067e\u0633\u0648\u0644\u0647 \u0633\u0627\u0632\u06cc \u0648 \u0633\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0645\u0637\u0631\u062d \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f\u0646 \u0627\u062c\u0632\u0627\u06cc \u0634\u0645\u0627 \u0628\u0647 \u062d\u0627\u0644\u062a \u0648\u0627\u0636\u062d\u200c\u062a\u0631 \u0648 \u0646\u062d\u0648\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0646\u0637\u0642 \u0648\u0627\u06a9\u0634\u06cc \u0631\u0627 \u0634\u0631\u062d \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0628\u0647\u200c\u0648\u06cc\u0698\u0647 \u062f\u0631 \u0645\u0648\u0631\u062f \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u00ab\u062c\u062f\u0627\u06cc\u06cc \u067e\u0631\u0633 \u0648 \u062c\u0648\u06cc \u0631\u0627\u06cc\u062c\u00bb \u0648 \u00ab\u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0646\u06af\u0631\u0627\u0646\u06cc\u200c\u0647\u0627\u00bb \u0628\u0627 React \u0628\u062d\u062b \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>\u0642\u0644\u0627\u0628 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u062f\u0631 React \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0631\u0627\u0647 \u062d\u0644\u06cc \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u0632\u0627\u0639 \u0645\u0646\u0637\u0642 \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u0645\u0639\u0631\u0641\u06cc \u0634\u062f\u0646\u062f. \u0622\u0646\u0647\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u0628\u062e\u0634\u06cc \u0627\u0632 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0648\u0644\u062a\u06cc \u06cc\u0627 \u0645\u0646\u0637\u0642 \u062a\u062c\u0627\u0631\u06cc \u0631\u0627 \u0628\u0647 \u0642\u0644\u0627\u0628 \u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u06cc\u062f. \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0628\u062f\u0648\u0646 \u0647\u062f\u0641 \u0645\u0634\u062e\u0635\u060c \u0627\u06cc\u062c\u0627\u062f \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0642\u0644\u0627\u0628 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u067e\u0631\u0648\u0698\u0647 \u0631\u0627 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u06a9\u0646\u062f. \u0627\u0632 \u0633\u0648\u06cc \u062f\u06cc\u06af\u0631\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0627\u0642\u0644\u0627\u0646\u0647 \u0627\u0632 \u0642\u0644\u0627\u0628 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0645\u0632\u0627\u06cc\u0627\u06cc \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u06a9\u062f \u0634\u0645\u0627 \u0628\u0647 \u0627\u0631\u0645\u063a\u0627\u0646 \u0628\u06cc\u0627\u0648\u0631\u062f.<\/p>\n<p>\u062f\u0631 React\u060c \u062a\u0641\u0627\u0648\u062a \u0628\u06cc\u0646 \u06cc\u06a9 \u0647\u0648\u06a9 \u0633\u0641\u0627\u0631\u0634\u06cc \u0648 \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0645\u0639\u0645\u0648\u0644\u06cc \u062f\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0642\u0644\u0627\u0628\u200c\u0647\u0627\u06cc React \u0646\u0647\u0641\u062a\u0647 \u0627\u0633\u062a <code>useState<\/code>\u060c <code>useEffect<\/code>\u0648 \u063a\u06cc\u0631\u0647. \u0628\u0647 \u0632\u0628\u0627\u0646 \u0633\u0627\u062f\u0647\u060c \u0642\u0644\u0627\u0628\u200c\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0627\u0632 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0686\u0631\u062e\u0647 \u0639\u0645\u0631 React \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062a\u0648\u0627\u0628\u0639 \u0645\u0639\u0645\u0648\u0644\u06cc \u0627\u06cc\u0646\u0637\u0648\u0631 \u0646\u06cc\u0633\u062a\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">useFetchUsers<\/span> <span class=\"o\">=<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">users<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setUsers<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useState<\/span><span class=\"p\">([]);<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">isLoading<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setIsLoading<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useState<\/span><span class=\"p\">(<\/span><span class=\"kc\">true<\/span><span class=\"p\">);<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">error<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setError<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useState<\/span><span class=\"p\">(<\/span><span class=\"kc\">null<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"nf\">useEffect<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ Function to fetch users from the API<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">fetchUsers<\/span> <span class=\"o\">=<\/span> <span class=\"k\">async <\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">response<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">axios<\/span><span class=\"p\">.<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">https:\/\/jsonplaceholder.typicode.com\/users<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n        <span class=\"nf\">setUsers<\/span><span class=\"p\">(<\/span><span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">data<\/span><span class=\"p\">);<\/span>\n        <span class=\"nf\">setIsLoading<\/span><span class=\"p\">(<\/span><span class=\"kc\">false<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span> <span class=\"k\">catch <\/span><span class=\"p\">(<\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nf\">setError<\/span><span class=\"p\">(<\/span><span class=\"nx\">err<\/span><span class=\"p\">);<\/span>\n        <span class=\"nf\">setIsLoading<\/span><span class=\"p\">(<\/span><span class=\"kc\">false<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span>\n    <span class=\"p\">};<\/span>\n\n    <span class=\"nf\">fetchUsers<\/span><span class=\"p\">();<\/span>\n  <span class=\"p\">},<\/span> <span class=\"p\">[]);<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">users<\/span><span class=\"p\">,<\/span> <span class=\"nx\">isLoading<\/span><span class=\"p\">,<\/span> <span class=\"nx\">error<\/span> <span class=\"p\">};<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0647 \u0647\u0645\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0642\u0644\u0627\u0628\u200c\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u062a\u0648\u0627\u0628\u0639 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u0645 \u0648 \u0628\u0647 \u0627\u06cc\u0646 \u0641\u06a9\u0631 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0645\u0646\u0637\u0642 \u0631\u0627 \u062f\u0631 \u0622\u0646\u0647\u0627 \u0627\u0646\u062a\u0632\u0627\u0639 \u06a9\u0646\u06cc\u0645\u060c \u062f\u0631\u0633\u062a \u0645\u0627\u0646\u0646\u062f \u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u06cc\u0627 \u062a\u0648\u0627\u0628\u0639 \u0645\u0639\u0645\u0648\u0644\u06cc.<\/p>\n<p>\u0642\u0644\u0627\u0628\u200c\u0647\u0627\u06cc React Query \u0639\u0645\u0644\u06a9\u0631\u062f \u06af\u0633\u062a\u0631\u062f\u0647\u200c\u0627\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0646\u0645\u0648\u0646\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u062a\u0646\u0647\u0627 \u0628\u0627 \u0686\u0646\u062f \u062e\u0637 \u06a9\u062f \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">useUsersQuery<\/span> <span class=\"o\">=<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"nf\">useQuery<\/span><span class=\"p\">(<\/span>\n      <span class=\"na\">queryKey<\/span><span class=\"p\">:<\/span> <span class=\"nx\">usersQueryKeys<\/span><span class=\"p\">.<\/span><span class=\"nf\">list<\/span><span class=\"p\">(),<\/span>\n      <span class=\"na\">queryFn<\/span><span class=\"p\">:<\/span> <span class=\"nx\">fetchUsers<\/span>\n  <span class=\"p\">);<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06af\u0631 \u0639\u0644\u0627\u0642\u0647 \u0645\u0646\u062f \u0628\u0647 \u0627\u06cc\u062c\u0627\u062f \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0647\u0633\u062a\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u06cc\u0634\u062a\u0631\u06cc \u0631\u0627 \u062f\u0631 \u0645\u0642\u0627\u0644\u0647 \u0645\u0646 Mastering React Query \u0628\u06cc\u0627\u0628\u06cc\u062f. \u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u062f \u062e\u0648\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f<\/p>\n<p>\u062f\u0631 \u0648\u0627\u0642\u0639\u06cc\u062a\u060c \u06a9\u0627\u0631 \u0628\u0627 React Query \u0627\u063a\u0644\u0628 \u0628\u0647 \u0645\u0646\u0637\u0642 \u0627\u0636\u0627\u0641\u06cc \u067e\u0633 \u0627\u0632 \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644:<\/p>\n<ul>\n<li>\u067e\u0631\u0633 \u0648 \u062c\u0648\u0647\u0627\u06cc \u062a\u0648\u062f\u0631\u062a\u0648: \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u06cc\u06a9 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0628\u0647 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0633\u062a\u06af\u06cc \u062f\u0627\u0631\u062f.<\/li>\n<li>\u062a\u0628\u062f\u06cc\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627<\/li>\n<li>\u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 \u0633\u0631\u0648\u0631<\/li>\n<li>\u0648\u0627\u06a9\u0634\u06cc \u0645\u062c\u062f\u062f \u062f\u0627\u062f\u0647 \u0647\u0627 \u0647\u0646\u06af\u0627\u0645 \u062a\u063a\u06cc\u06cc\u0631 \u0686\u06cc\u0632\u06cc (\u0645\u0627\u0646\u0646\u062f \u062a\u063a\u06cc\u06cc\u0631 \u0641\u06cc\u0644\u062a\u0631).<\/li>\n<\/ul>\n<p>\u0627\u0644\u0628\u062a\u0647\u060c \u0634\u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u0645\u0627\u0645 \u0627\u06cc\u0646 \u0645\u0646\u0637\u0642 \u0631\u0627 \u062f\u0631 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u06cc \u06a9\u0647 React Query Hook \u0645\u06cc\u200c\u0646\u0627\u0645\u06cc\u062f \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0627\u063a\u0644\u0628 \u0628\u0647 \u0627\u062c\u0632\u0627\u06cc\u06cc \u0628\u0627 \u0645\u0646\u0637\u0642 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0632\u06cc\u0627\u062f\u06cc \u0645\u0646\u062c\u0631 \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u067e\u06cc\u06af\u06cc\u0631\u06cc \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0634\u0648\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0646\u0645\u0648\u0646\u0647 \u0627\u06cc \u0627\u0632 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u06cc \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u0645 \u06a9\u0647 \u0627\u0632 React Query \u0628\u062f\u0648\u0646 \u0642\u0644\u0627\u0628 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">UsersComponent<\/span> <span class=\"o\">=<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"na\">data<\/span><span class=\"p\">:<\/span> <span class=\"nx\">users<\/span><span class=\"p\">,<\/span> <span class=\"nx\">error<\/span><span class=\"p\">,<\/span> <span class=\"nx\">isLoading<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useQuery<\/span><span class=\"p\">([<\/span><span class=\"dl\">'<\/span><span class=\"s1\">users<\/span><span class=\"dl\">'<\/span><span class=\"p\">],<\/span> <span class=\"nx\">fetchUsers<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">staleTime<\/span><span class=\"p\">:<\/span> <span class=\"mi\">30000<\/span><span class=\"p\">,<\/span>  <span class=\"c1\">\/\/ Cache data for 30 seconds<\/span>\n    <span class=\"na\">refetchOnWindowFocus<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span> <span class=\"c1\">\/\/ Disable refetch on window focus<\/span>\n  <span class=\"p\">});<\/span>\n\n  <span class=\"c1\">\/\/ Data transformation<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">activeUsers<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">users<\/span><span class=\"p\">?.<\/span><span class=\"nf\">filter<\/span><span class=\"p\">(<\/span><span class=\"nx\">user<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">user<\/span><span class=\"p\">.<\/span><span class=\"nx\">isActive<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">isLoading<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span> <span class=\"o\"><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Loading<\/span><span class=\"p\">...<\/span><span class=\"o\"><span class=\"sr\">\/p&gt;<\/span><span class=\"err\">;\n<\/span>  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">error<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span> <span class=\"o\"><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"nb\">Error<\/span> <span class=\"nx\">loading<\/span> <span class=\"na\">users<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span><span class=\"nx\">error<\/span><span class=\"p\">.<\/span><span class=\"nx\">message<\/span><span class=\"p\">}<\/span><span class=\"o\"><span class=\"sr\">\/p&gt;<\/span><span class=\"err\">;\n<\/span>\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\"><span class=\"nx\">ul<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"p\">{<\/span><span class=\"nx\">activeUsers<\/span><span class=\"p\">.<\/span><span class=\"nf\">map<\/span><span class=\"p\">(<\/span><span class=\"nx\">user<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">(<\/span>\n        <span class=\"o\"><span class=\"nx\">li<\/span> <span class=\"nx\">key<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">user<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">}<\/span><span class=\"o\">&gt;<\/span>\n          <span class=\"p\">{<\/span><span class=\"nx\">user<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span><span class=\"p\">}<\/span> <span class=\"p\">({<\/span><span class=\"nx\">user<\/span><span class=\"p\">.<\/span><span class=\"nx\">email<\/span><span class=\"p\">})<\/span>\n        <span class=\"o\"><span class=\"sr\">\/li<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"p\">))}<\/span>\n    <span class=\"o\"><span class=\"sr\">\/ul<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">};<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0646\u06af\u0627\u0647 \u0627\u0648\u0644\u060c \u0627\u06cc\u0646 \u06a9\u062f \u062e\u0648\u0628 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f\u060c \u0627\u0645\u0627 \u062f\u0631 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u067e\u06cc\u0686\u06cc\u062f\u0647\u060c \u0645\u0646\u0637\u0642 \u0627\u06cc\u0646 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0633\u0631\u0639\u062a \u0631\u0634\u062f \u06a9\u0646\u062f \u0648 \u067e\u06cc\u0631\u0648\u06cc \u0627\u0632 \u0622\u0646 \u0631\u0627 \u062f\u0634\u0648\u0627\u0631\u062a\u0631 \u06a9\u0646\u062f \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0631\u0627 \u06a9\u0627\u0647\u0634 \u062f\u0647\u062f.<\/p>\n<p>\u062d\u0627\u0644\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 \u0628\u0627 \u0627\u0646\u062a\u0632\u0627\u0639 \u0642\u0644\u0627\u0628 \u0633\u0641\u0627\u0631\u0634\u06cc \u0646\u06af\u0627\u0647 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">useFetchActiveUsers<\/span> <span class=\"o\">=<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">query<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useQuery<\/span><span class=\"p\">([<\/span><span class=\"dl\">'<\/span><span class=\"s1\">users<\/span><span class=\"dl\">'<\/span><span class=\"p\">],<\/span> <span class=\"nx\">fetchUsers<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">staleTime<\/span><span class=\"p\">:<\/span> <span class=\"mi\">30000<\/span><span class=\"p\">,<\/span>  <span class=\"c1\">\/\/ Cache data for 30 seconds<\/span>\n    <span class=\"na\">refetchOnWindowFocus<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span> <span class=\"c1\">\/\/ Disable refetch on window focus<\/span>\n  <span class=\"p\">});<\/span>\n\n  <span class=\"c1\">\/\/ Additional logic: filtering active users<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">activeUsers<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">query<\/span><span class=\"p\">.<\/span><span class=\"nx\">data<\/span><span class=\"p\">?.<\/span><span class=\"nf\">filter<\/span><span class=\"p\">(<\/span><span class=\"nx\">user<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">user<\/span><span class=\"p\">.<\/span><span class=\"nx\">isActive<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"p\">{<\/span> <span class=\"p\">...<\/span><span class=\"nx\">query<\/span><span class=\"p\">,<\/span> <span class=\"na\">data<\/span><span class=\"p\">:<\/span> <span class=\"nx\">activeUsers<\/span> <span class=\"p\">};<\/span>\n<span class=\"p\">};<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">UsersComponent<\/span> <span class=\"o\">=<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"na\">data<\/span><span class=\"p\">:<\/span> <span class=\"nx\">activeUsers<\/span><span class=\"p\">,<\/span> <span class=\"nx\">error<\/span><span class=\"p\">,<\/span> <span class=\"nx\">isLoading<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useActiveUsersQuery<\/span><span class=\"p\">();<\/span>\n\n  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">isLoading<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span> <span class=\"o\"><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Loading<\/span><span class=\"p\">...<\/span><span class=\"o\"><span class=\"sr\">\/p&gt;<\/span><span class=\"err\">;\n<\/span>  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">error<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span> <span class=\"o\"><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"nb\">Error<\/span> <span class=\"nx\">loading<\/span> <span class=\"na\">users<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span><span class=\"nx\">error<\/span><span class=\"p\">.<\/span><span class=\"nx\">message<\/span><span class=\"p\">}<\/span><span class=\"o\"><span class=\"sr\">\/p&gt;<\/span><span class=\"err\">;\n<\/span>\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\"><span class=\"nx\">ul<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"p\">{<\/span><span class=\"nx\">activeUsers<\/span><span class=\"p\">.<\/span><span class=\"nf\">map<\/span><span class=\"p\">(<\/span><span class=\"nx\">user<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">(<\/span>\n        <span class=\"o\"><span class=\"nx\">li<\/span> <span class=\"nx\">key<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">user<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">}<\/span><span class=\"o\">&gt;<\/span>\n          <span class=\"p\">{<\/span><span class=\"nx\">user<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span><span class=\"p\">}<\/span> <span class=\"p\">({<\/span><span class=\"nx\">user<\/span><span class=\"p\">.<\/span><span class=\"nx\">email<\/span><span class=\"p\">})<\/span>\n        <span class=\"o\"><span class=\"sr\">\/li<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"p\">))}<\/span>\n    <span class=\"o\"><span class=\"sr\">\/ul<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">};<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0627 \u0627\u0644\u06af\u0648\u06cc \u00ab\u062a\u0641\u06a9\u06cc\u06a9 \u0646\u06af\u0631\u0627\u0646\u06cc\u200c\u0647\u0627\u00bb \u06cc\u0627 \u00ab\u0627\u0635\u0644 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0648\u0627\u062d\u062f\u00bb \u0631\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0631\u062f\u06cc\u0645\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0647\u0645\u0647 \u0645\u0646\u0637\u0642 \u0648\u0627\u06a9\u0634\u06cc \u0631\u0627 \u0628\u0647 \u062e\u0627\u0631\u062c \u0627\u0632 \u0645\u0624\u0644\u0641\u0647 UI \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u062f\u06cc\u0645. \u0627\u06a9\u0646\u0648\u0646\u060c \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0635\u0631\u0641\u0627\u064b \u0628\u0631 \u0631\u0648\u06cc \u0631\u0646\u062f\u0631 \u06a9\u0631\u062f\u0646 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0645\u062a\u0645\u0631\u06a9\u0632 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 API \u0648 React Query\u060c \u062f\u0648 \u0642\u0644\u0627\u0628 \u0627\u0635\u0644\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f: <code>useQuery<\/code> \u0648 <code>useMutation<\/code>. \u0627\u06cc\u0646 <code>useQuery<\/code> \u0647\u0648\u06a9 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u0648\u0627\u06a9\u0634\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0627\u0632 \u06a9\u0634 \u0628\u0631\u0627\u06cc \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0645\u0646\u0637\u0642 \u0648\u0627\u06a9\u0634\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 <code>useMutation<\/code> \u0647\u0648\u06a9 \u062f\u0631 \u062f\u0631\u062c\u0647 \u0627\u0648\u0644 \u0628\u0631\u0627\u06cc \u062c\u0647\u0634 \u062f\u0627\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0642\u0644\u0627\u0628 \u0647\u0627 \u0645\u062a\u0641\u0627\u0648\u062a \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u0646\u062f \u0648 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0627\u06cc\u0646 \u0642\u0644\u0627\u0628 \u0647\u0627 \u0639\u0645\u062f\u06cc \u0627\u0633\u062a.<\/p>\n<p>\u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u06a9\u062f \u062f\u0646\u06cc\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc\u060c \u0647\u0646\u06af\u0627\u0645 \u0627\u0646\u062a\u0632\u0627\u0639 React Query\u060c \u0645\u0639\u0645\u0648\u0644 \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 \u0647\u0648\u06a9 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645 \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0648\u0627\u06a9\u0634\u06cc \u0648 \u062c\u0647\u0634 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u062a\u0641\u0627\u0642 \u0645\u06cc\u200c\u0627\u0641\u062a\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code>\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">useUser<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">userId<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">queryClient<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useQueryClient<\/span><span class=\"p\">();<\/span>\n\n  <span class=\"c1\">\/\/ Fetch all users<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">usersQuery<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useQuery<\/span><span class=\"p\">([<\/span><span class=\"dl\">'<\/span><span class=\"s1\">users<\/span><span class=\"dl\">'<\/span><span class=\"p\">],<\/span> <span class=\"nx\">fetchUsers<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">staleTime<\/span><span class=\"p\">:<\/span> <span class=\"mi\">30000<\/span><span class=\"p\">,<\/span>  <span class=\"c1\">\/\/ Cache data for 30 seconds<\/span>\n    <span class=\"na\">refetchOnWindowFocus<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span> <span class=\"c1\">\/\/ Disable refetch on window focus<\/span>\n  <span class=\"p\">});<\/span>\n\n  <span class=\"c1\">\/\/ Fetch a single user by ID (optional)<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">userQuery<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useQuery<\/span><span class=\"p\">([<\/span><span class=\"dl\">'<\/span><span class=\"s1\">user<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">userId<\/span><span class=\"p\">],<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nf\">fetchUserById<\/span><span class=\"p\">(<\/span><span class=\"nx\">userId<\/span><span class=\"p\">),<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">enabled<\/span><span class=\"p\">:<\/span> <span class=\"o\">!!<\/span><span class=\"nx\">userId<\/span><span class=\"p\">,<\/span> <span class=\"c1\">\/\/ Only run this query if a userId is provided<\/span>\n  <span class=\"p\">});<\/span>\n\n  <span class=\"c1\">\/\/ Mutation for updating user data<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">mutation<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useMutation<\/span><span class=\"p\">(<\/span><span class=\"nx\">updateUser<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">onSuccess<\/span><span class=\"p\">:<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"c1\">\/\/ Invalidate and refetch users data after a successful update<\/span>\n      <span class=\"nx\">queryClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">invalidateQueries<\/span><span class=\"p\">([<\/span><span class=\"dl\">'<\/span><span class=\"s1\">users<\/span><span class=\"dl\">'<\/span><span class=\"p\">]);<\/span>\n      <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">userId<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nx\">queryClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">invalidateQueries<\/span><span class=\"p\">([<\/span><span class=\"dl\">'<\/span><span class=\"s1\">user<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">userId<\/span><span class=\"p\">]);<\/span>\n      <span class=\"p\">}<\/span>\n    <span class=\"p\">},<\/span>\n  <span class=\"p\">});<\/span>\n\n  <span class=\"c1\">\/\/ Function to update a user<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">updateUserDetails<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">userId<\/span><span class=\"p\">,<\/span> <span class=\"nx\">updatedData<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">mutation<\/span><span class=\"p\">.<\/span><span class=\"nf\">mutate<\/span><span class=\"p\">({<\/span> <span class=\"nx\">userId<\/span><span class=\"p\">,<\/span> <span class=\"nx\">updatedData<\/span> <span class=\"p\">});<\/span>\n  <span class=\"p\">};<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">users<\/span><span class=\"p\">:<\/span> <span class=\"nx\">usersQuery<\/span><span class=\"p\">.<\/span><span class=\"nx\">data<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">isLoadingUsers<\/span><span class=\"p\">:<\/span> <span class=\"nx\">usersQuery<\/span><span class=\"p\">.<\/span><span class=\"nx\">isLoading<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">isErrorUsers<\/span><span class=\"p\">:<\/span> <span class=\"nx\">usersQuery<\/span><span class=\"p\">.<\/span><span class=\"nx\">isError<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">user<\/span><span class=\"p\">:<\/span> <span class=\"nx\">userQuery<\/span><span class=\"p\">.<\/span><span class=\"nx\">data<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">isLoadingUser<\/span><span class=\"p\">:<\/span> <span class=\"nx\">userQuery<\/span><span class=\"p\">.<\/span><span class=\"nx\">isLoading<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">isErrorUser<\/span><span class=\"p\">:<\/span> <span class=\"nx\">userQuery<\/span><span class=\"p\">.<\/span><span class=\"nx\">isError<\/span><span class=\"p\">,<\/span>\n    <span class=\"nx\">updateUserDetails<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">isUpdating<\/span><span class=\"p\">:<\/span> <span class=\"nx\">mutation<\/span><span class=\"p\">.<\/span><span class=\"nx\">isLoading<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">updateError<\/span><span class=\"p\">:<\/span> <span class=\"nx\">mutation<\/span><span class=\"p\">.<\/span><span class=\"nx\">isError<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">};<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0646\u06af\u0627\u0647 \u0627\u0648\u0644\u060c \u0647\u06cc\u0686 \u0645\u0634\u06a9\u0644\u06cc \u062f\u0631 \u0627\u06cc\u0646 \u0642\u0644\u0627\u0628 \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f\u060c \u0627\u0645\u0627 &#8220;\u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc&#8221; \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u063a\u0644\u0628 \u0628\u0647 \u0645\u0646\u0637\u0642 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f\u060c \u0645\u0627\u0646\u0646\u062f \u0622\u0645\u0627\u062f\u0647 \u06a9\u0631\u062f\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u0631\u060c \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u0647\u0627\u06cc \u062e\u0627\u0635 \u0645\u0627\u0646\u0646\u062f \u0627\u0639\u062a\u0628\u0627\u0631 \u0633\u0646\u062c\u06cc \u0648 \u063a\u06cc\u0631\u0647.<\/p>\n<p>\u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u0645 \u00ab\u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u067e\u0631\u0633 \u0648 \u062c\u0648\u06cc \u0631\u0627\u06cc\u062c\u00bb \u0627\u0633\u062a \u06a9\u0647 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u062f\u0631 \u0642\u0633\u0645\u062a \u067e\u0634\u062a\u06cc\u0628\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<blockquote>\n<p>\u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u067e\u0631\u0633 \u0648 \u062c\u0648\u06cc \u062f\u0633\u062a\u0648\u0631\u06cc (CQS) \u06cc\u06a9 \u0627\u0635\u0644 \u0637\u0631\u0627\u062d\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631\u060c \u0628\u0647 \u0648\u06cc\u0698\u0647 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0634\u06cc \u06af\u0631\u0627\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0628\u06cc\u0646 \u0631\u0648\u0634 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0639\u0645\u0627\u0644 (\u0641\u0631\u0645\u0627\u0646 \u0647\u0627) \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u0646\u062f \u0648 \u0631\u0648\u0634 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f (\u067e\u0631\u0633 \u0648 \u062c\u0648\u0647\u0627) \u062a\u0645\u0627\u06cc\u0632 \u0642\u0627\u0626\u0644 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<\/blockquote>\n<p>\u0627\u0635\u0644 \u0627\u0635\u0644\u06cc \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0627\u0633\u062a <code>get<\/code> \u0645\u0646\u0637\u0642 \u0627\u0632 <code>mutation<\/code> (\u06cc\u0627 <code>commands<\/code> \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647 \u0627\u0635\u0644\u06cc). \u062f\u0631 React\u060c \u0645\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc API \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0646\u0645\u06cc\u200c\u062f\u0647\u06cc\u0645\u060c \u0627\u0645\u0627 \u0628\u0627 React Query\u060c \u0627\u06cc\u0646 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>useQuery<\/code> \u0648 <code>useMutation<\/code> \u0642\u0644\u0627\u0628 \u0647\u0627<\/p>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u0639\u0645\u0627\u0644 \u0627\u06cc\u0646 \u0627\u0644\u06af\u0648\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0622\u0646 \u0631\u0627 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u06cc\u0645 <code>useUser<\/code> \u0628\u0647 \u062f\u0648 \u0642\u0644\u0627\u0628 \u0645\u062c\u0632\u0627 \u0642\u0644\u0627\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">useUserQuery<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">userId<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"c1\">\/\/ Fetch a single user by ID (optional)<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">{<\/span><span class=\"na\">data<\/span><span class=\"p\">:<\/span> <span class=\"nx\">user<\/span><span class=\"p\">,<\/span> <span class=\"nx\">isLoading<\/span><span class=\"p\">,<\/span> <span class=\"nx\">isError<\/span><span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useQuery<\/span><span class=\"p\">([<\/span><span class=\"dl\">'<\/span><span class=\"s1\">user<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">userId<\/span><span class=\"p\">],<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nf\">fetchUserById<\/span><span class=\"p\">(<\/span><span class=\"nx\">userId<\/span><span class=\"p\">),<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">enabled<\/span><span class=\"p\">:<\/span> <span class=\"o\">!!<\/span><span class=\"nx\">userId<\/span><span class=\"p\">,<\/span> <span class=\"c1\">\/\/ Only run this query if a userId is provided<\/span>\n  <span class=\"p\">});<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">user<\/span><span class=\"p\">,<\/span>\n    <span class=\"nx\">isLoading<\/span><span class=\"p\">,<\/span>\n    <span class=\"nx\">isError<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">};<\/span>\n<span class=\"p\">};<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">useUserMutation<\/span> <span class=\"o\">=<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">queryClient<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useQueryClient<\/span><span class=\"p\">();<\/span>\n\n  <span class=\"c1\">\/\/ Mutation for updating user data<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">mutation<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useMutation<\/span><span class=\"p\">(<\/span><span class=\"nx\">updateUser<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">onSuccess<\/span><span class=\"p\">:<\/span> <span class=\"p\">(<\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">userId<\/span> <span class=\"p\">})<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"c1\">\/\/ Invalidate and refetch users data after a successful update<\/span>\n      <span class=\"nx\">queryClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">invalidateQueries<\/span><span class=\"p\">([<\/span><span class=\"dl\">'<\/span><span class=\"s1\">users<\/span><span class=\"dl\">'<\/span><span class=\"p\">]);<\/span>\n      <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">userId<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nx\">queryClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">invalidateQueries<\/span><span class=\"p\">([<\/span><span class=\"dl\">'<\/span><span class=\"s1\">user<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">userId<\/span><span class=\"p\">]);<\/span>\n      <span class=\"p\">}<\/span>\n    <span class=\"p\">},<\/span>\n  <span class=\"p\">});<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">updateUserDetails<\/span><span class=\"p\">:<\/span> <span class=\"nx\">mutation<\/span><span class=\"p\">.<\/span><span class=\"nx\">mutate<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">isUpdating<\/span><span class=\"p\">:<\/span> <span class=\"nx\">mutation<\/span><span class=\"p\">.<\/span><span class=\"nx\">isLoading<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">isError<\/span><span class=\"p\">:<\/span> <span class=\"nx\">mutation<\/span><span class=\"p\">.<\/span><span class=\"nx\">isError<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">};<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062c\u062f\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0645\u0627 \u0645\u0632\u0627\u06cc\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f:<\/p>\n<ul>\n<li>\n<strong>\u0645\u062f\u0648\u0644\u0627\u0631 \u0628\u0648\u062f\u0646<\/strong>: \u0647\u0631 \u0642\u0644\u0627\u0628 \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0645\u062a\u0645\u0631\u06a9\u0632 \u0627\u0633\u062a \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0645\u0646\u0637\u0642 \u0631\u0627 \u0622\u0633\u0627\u0646 \u062a\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\n<strong>\u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f<\/strong>: \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>useUserQuery<\/code> \u0648 <code>useUserMutation<\/code> \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u0644 \u062f\u0631 \u0633\u0627\u06cc\u0631 \u0628\u062e\u0634 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627.<\/li>\n<li>\n<strong>\u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc<\/strong>: \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0631\u0634\u062f \u0645\u06cc \u06a9\u0646\u062f\u060c \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0646\u06af\u0631\u0627\u0646\u06cc \u0647\u0627 \u0628\u0647 \u062d\u0641\u0638 \u0648 \u0645\u0642\u06cc\u0627\u0633 \u0628\u0646\u062f\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f \u067e\u0627\u06cc\u06af\u0627\u0647 \u06a9\u062f \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<\/ul>\n<p>\u0628\u0631\u0627\u06cc \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0646 \u06a9\u0627\u0631\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u0642\u0644\u0627\u0628 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f \u0628\u0647 \u062f\u06cc\u06af\u0631 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u06a9\u0647 postfix \u0631\u0627 \u0628\u0627 \u062a\u0648\u0636\u06cc\u062d\u0627\u062a\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u0647\u0648\u06a9 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f. \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0627\u0634\u062f <code>Query<\/code> \u0648 <code>Mutation<\/code> \u06cc\u0627 \u067e\u0633\u0648\u0646\u062f\u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u0628\u06cc\u0634\u062a\u0631 \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u06a9\u062f \u0634\u0645\u0627.<\/p>\n<p>\u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0627 \u0645\u0634\u06a9\u0644 \u0627\u062c\u0632\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0645\u0648\u0627\u062c\u0647 \u0634\u0648\u0646\u062f \u06a9\u0647 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0627\u0632 \u0645\u0646\u0637\u0642 \u0645\u062e\u062a\u0644\u0641 \u0648 \u0631\u0646\u062f\u0631 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0632\u0631\u06af \u062a\u0631\u06cc\u0646 \u0628\u062e\u0634 \u0622\u0646 \u0646\u06cc\u0633\u062a. \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u0645\u0627\u0646\u0646\u062f <strong>\u062a\u0641\u06a9\u06cc\u06a9 \u0646\u06af\u0631\u0627\u0646\u06cc \u0647\u0627<\/strong> \u0648 <strong>\u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0631\u0627\u06cc\u062c<\/strong>\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u0645\u0639\u0645\u0627\u0631\u06cc \u062a\u0645\u06cc\u0632 \u0648 \u0645\u0627\u0698\u0648\u0644\u0627\u0631 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u062c\u0632\u0627\u06cc \u0634\u0645\u0627 \u0631\u0627 \u0628\u0631 \u0631\u0648\u06cc \u0631\u0646\u062f\u0631 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0645\u062a\u0645\u0631\u06a9\u0632 \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u062f \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u0645\u0646\u0637\u0642 \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647 \u0648 \u062c\u0647\u0634 \u0631\u0627 \u0628\u0647 \u0642\u0644\u0627\u0628 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0648\u0627\u06af\u0630\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u06af\u0646\u062c\u0627\u0646\u062f\u0646 \u0627\u06cc\u0646 \u0627\u0635\u0648\u0644 \u062f\u0631 \u06af\u0631\u062f\u0634 \u06a9\u0627\u0631 \u062a\u0648\u0633\u0639\u0647 React \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u062d\u0627\u0644\u062a \u0648 \u0633\u0631\u0648\u0631 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0624\u062b\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u062f\u0631 \u0637\u0648\u0644 \u062a\u06a9\u0627\u0645\u0644 \u0628\u0647 \u0622\u0633\u0627\u0646\u06cc \u0642\u0627\u0628\u0644 \u062f\u0631\u06a9 \u0648 \u06af\u0633\u062a\u0631\u0634 \u0627\u0633\u062a.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u062f\u0631 \u0627\u06a9\u062b\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0641\u0631\u0627\u0646\u062a \u0627\u0646\u062f\u060c React Query \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u067e\u0644\u06cc \u0628\u06cc\u0646 \u0633\u0631\u0648\u0631 \u0648 \u0641\u0631\u0627\u0646\u062a \u0627\u0646\u062f \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0627 \u0622\u0646\u060c \u0634\u0645\u0627 \u0646\u0647 \u062a\u0646\u0647\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f\u060c \u0628\u0644\u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0631\u0627 \u0646\u06cc\u0632 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f. \u0647\u0631\u0686\u0647 \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 React Query \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645\u060c \u0628\u06cc\u0634\u062a\u0631 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":73660,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-73659","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/73659","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=73659"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/73659\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/73660"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=73659"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=73659"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=73659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}