{"id":86223,"date":"2024-11-30T20:23:44","date_gmt":"2024-11-30T16:53:44","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/how-to-use-use-the-new-react-19-hook-4ah5\/"},"modified":"2024-11-30T20:23:44","modified_gmt":"2024-11-30T16:53:44","slug":"how-to-use-use-the-new-react-19-hook-4ah5","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/how-to-use-use-the-new-react-19-hook-4ah5\/","title":{"rendered":"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 &#8230; &#8220;\u0627\u0633\u062a\u0641\u0627\u062f\u0647&#8221;\u060c \u0642\u0644\u0627\u0628 \u062c\u062f\u06cc\u062f React 19"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang <\/p>\n<p>\u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0627\u0631\u0632\u0634 \u06cc\u06a9 Promise \u06cc\u0627 \u06cc\u06a9 Context \u0631\u0627 \u062f\u0631 \u062f\u0627\u062e\u0644 \u06cc\u06a9 \u062c\u0632\u0621 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f<\/p>\n<p>const value = use(resource)<\/p>\n<p>\u06cc\u06a9 \u0645\u062b\u0627\u0644 \u06a9\u0648\u062a\u0627\u0647 \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0645\u062a\u0646 \u06cc\u0627 \u0648\u0639\u062f\u0647 \u0645\u0642\u0627\u062f\u06cc\u0631\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u06cc\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645:<\/p>\n<p>import { use } from &#8220;react&#8221;;<\/p>\n<p>function MessageComponent ({ messagePromise }) {<br \/>\n    const message = use(messagePromise);<br \/>\n    const theme = use(ThemeContext);<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 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0647 \u062c\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646\u060c \u062a\u0645\u0627\u0634\u0627 \u06a9\u0646\u06cc\u062f\u060c \u06cc\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062a\u0646 \u0648 \u0648\u0639\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0627 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u06a9\u0646\u06cc\u062f\u060c \u0627\u06cc\u0646 \u0648\u06cc\u062f\u06cc\u0648 \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f<\/p>\n<p>\u0645\u0624\u0644\u0641\u0647 \u0627\u06cc \u06a9\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0627\u0645\u06cc\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f \u0628\u0627\u06cc\u062f \u0628\u0627 \u0622\u0646 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0634\u0648\u062f Suspense \u0648 \u0628\u0647 \u0635\u0648\u0631\u062a \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc error boundaries. \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062d\u0644 \u0648 \u0641\u0635\u0644 \u0648\u0639\u062f\u0647 \u0648 \u06af\u0631\u0641\u062a\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 context\u060c \u0628\u0627\u0632\u06af\u0634\u062a \u0627\u0632 Suspense \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f. \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 Promise \u062d\u0644 \u0634\u062f\u060c \u0645\u0648\u0644\u0641\u0647 \u0647\u0627\u06cc \u0631\u0646\u062f\u0631 \u0634\u062f\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 use API.<\/p>\n<p>\u0627\u06af\u0631 \u0648\u0639\u062f\u0647 \u06af\u0630\u0634\u062a \u0628\u0647 use \u0631\u062f \u0645\u06cc \u0634\u0648\u062f\u060c \u0628\u0627\u0632\u06af\u0634\u062a \u0646\u0632\u062f\u06cc\u06a9\u062a\u0631\u06cc\u0646 \u0645\u0631\u0632 \u062e\u0637\u0627 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 &#8220;use&#8221; \u0628\u0627 React Context<\/p>\n<p>  \u062a\u0646\u0638\u06cc\u0645 Context<\/p>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u06cc \u0631\u0627 \u0628\u0647 \u0622\u0646 \u0645\u062a\u0635\u0644 \u06a9\u0646\u06cc\u0645 Context.<\/p>\n<p>\u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06cc\u06a9 \u062a\u0645 \u0633\u0641\u0627\u0631\u0634\u06cc\u060c \u0631\u0648\u0634\u0646 \u0648 \u062a\u0627\u0631\u06cc\u06a9 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u0645. \u0645\u0627 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 ThemeContext.ts:<\/p>\n<p>\/\/ ThemeContext.ts<br \/>\nimport { createContext, Dispatch, SetStateAction } from &#8216;react&#8217;;<\/p>\n<p>type Theme = &#8216;light&#8217; | &#8216;dark&#8217;;<\/p>\n<p>interface IThemeContext {<br \/>\n  theme: Theme;<br \/>\n  setTheme: Dispatch&lt;SetStateAction&lt;Theme&gt;&gt;;<br \/>\n}<\/p>\n<p>export const ThemeContext = createContext&lt;IThemeContext&gt;({<br \/>\n  theme: &#8216;dark&#8217;,<br \/>\n  setTheme: () =&gt; {},<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\u0648\u0627\u0631\u062f \u0641\u0648\u0642 \u0634\u06cc\u0621 ThemeContext \u0645\u0627 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u060c \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0622\u0646 \u0631\u0627 \u0627\u0632 \u0647\u0631 \u0641\u0627\u06cc\u0644\u06cc \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0645\u0648\u0636\u0648\u0639 \u0641\u0639\u0644\u06cc \u0631\u0627 \u0628\u06af\u06cc\u0631\u06cc\u0645 \u0648 setTheme \u0628\u0631\u0627\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0637\u0631\u062d \u0632\u0645\u06cc\u0646\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f. \u0645\u0627 \u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0645\u0648\u0636\u0648\u0639 \u0631\u0627 \u00ab\u062a\u0627\u0631\u06cc\u06a9\u00bb \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645\u060c \u0632\u06cc\u0631\u0627 \u0628\u0647 \u0646\u0638\u0631 \u0628\u0633\u06cc\u0627\u0631 \u062c\u0627\u0644\u0628\u200c\u062a\u0631 \u0645\u06cc\u200c\u0631\u0633\u062f.<\/p>\n<p>\u0633\u067e\u0633 \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0647\u0645\u0647 \u0632\u0645\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc\u0645\u0627\u0646\u060c a \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 Context.tsx \u062c\u0632\u0621\u060c \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u0628\u0647 \u062e\u0648\u0628\u06cc \u0633\u0627\u0632\u0645\u0627\u0646\u062f\u0647\u06cc \u0634\u0648\u062f:<\/p>\n<p>\/\/ Context.tsx<br \/>\nimport React, { useState } from &#8216;react&#8217;;<br \/>\nimport { ThemeContext } from &#8216;.\/ThemeContext&#8217;;<br \/>\nimport { Theme } from &#8216;..\/types&#8217;;<\/p>\n<p>export default function Context({ children }: { children: React.ReactNode }) {<br \/>\n  const [theme, setTheme] = useState&lt;Theme&gt;(&#8216;dark&#8217;);<\/p>\n<p>  return (<br \/>\n    &lt;ThemeContext.Provider<br \/>\n      value={{<br \/>\n        theme,<br \/>\n        setTheme: setTheme,<br \/>\n      }}<br \/>\n    &gt;<br \/>\n      {children}<br \/>\n    ThemeContext.Provider&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 \u0634\u06cc\u0621 \u062d\u0627\u0644\u062a \u0631\u0627 \u0628\u0647 \u0645\u0627 \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u0645 ThemeContext.Provider\u060c \u06a9\u0647 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0648 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u062a\u0645 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0628\u0631\u0627\u06cc \u0628\u0647 \u0647\u0645 \u0632\u062f\u0646 \u0627\u06cc\u0646 \u0647\u0645\u0647\u060c \u0645\u0627 \u0628\u0627\u06cc\u062f \u062e\u0648\u062f \u0631\u0627 \u0628\u067e\u06cc\u0686\u06cc\u0645  \u062c\u0632\u0621 \u062f\u0631 \u0645\u0627  \u062c\u0632\u0621<\/p>\n<p>\/\/ index.tsx<\/p>\n<p>\/\/ &#8230; Other imports etc.<br \/>\nimport Context from &#8216;.\/Context.tsx&#8217;<\/p>\n<p>const root = ReactDOM.createRoot(<br \/>\n  document.getElementById(&#8216;root&#8217;) as HTMLElement<br \/>\n);<br \/>\nroot.render(<br \/>\n  &lt;React.StrictMode&gt;<br \/>\n    &lt;Context&gt;<br \/>\n      &lt;App \/&gt;<br \/>\n    Context&gt;<br \/>\n  React.StrictMode&gt;<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 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631  \u0648 \u0641\u0631\u0632\u0646\u062f\u0627\u0646 \u0622\u0646 (\u06a9\u0647 \u0627\u0633\u0627\u0633\u0627\u064b \u06a9\u0644 \u067e\u0631\u0648\u0698\u0647 \u0645\u0627\u0633\u062a) \u0628\u0647 \u0645\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u0646\u062f \u062f\u0627\u0634\u062a ThemeContext.<\/p>\n<p>  \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 &#8220;\u0627\u0633\u062a\u0641\u0627\u062f\u0647&#8221; \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u0627 Context<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0645\u0624\u0644\u0641\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0645\u0648\u0636\u0648\u0639 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u062f! Components\/ContextExample.tsx:<\/p>\n<p>\/\/ ContextExample.tsx<br \/>\nimport { use } from &#8216;react&#8217;;<br \/>\nimport { ThemeContext } from &#8216;..\/context\/ThemeContext&#8217;;<\/p>\n<p>export default function ContextExample() {<br \/>\n  const { setTheme } = use(ThemeContext);<\/p>\n<p>  const handleThemeToggle = () =&gt; {<br \/>\n    setTheme((prevTheme) =&gt; {<br \/>\n      if (prevTheme === &#8216;light&#8217;) {<br \/>\n        return &#8216;dark&#8217;;<br \/>\n      } else {<br \/>\n        return &#8216;light&#8217;;<br \/>\n      }<br \/>\n    });<br \/>\n  };<\/p>\n<p>  return (<br \/>\n    &lt;div&gt;<br \/>\n      &lt;button onClick={() =&gt; handleThemeToggle()}&gt;Switch Themebutton&gt;<br \/>\n    div&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 \u062f\u0631 \u062d\u0627\u0644 \u0686\u0646\u06af \u0632\u062f\u0646 \u0628\u0647 setTheme \u0631\u0648\u0634 \u0627\u0632 ThemeContext. \u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0631\u0627\u0626\u0647 a  \u06a9\u0647 onClick \u062a\u0645\u0627\u0633 \u0645\u06cc \u06af\u06cc\u0631\u062f handleThemeToggle() \u06a9\u0647 \u0645\u0648\u0636\u0648\u0639 \u0641\u0639\u0644\u06cc \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06af\u0631 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 &#8220;\u0631\u0648\u0634\u0646&#8221; \u0627\u0633\u062a\u060c \u062a\u0645 \u0631\u0627 \u0631\u0648\u06cc &#8220;\u062a\u0627\u0631\u06cc\u06a9&#8221; \u0648 \u0628\u0631\u0639\u06a9\u0633 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644&#8230; \u062a\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0622\u0646 \u0631\u0627 \u0648\u0627\u0631\u062f \u0646\u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0633\u0628\u06a9 \u0647\u0627 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0646\u06a9\u0646\u06cc\u0645\u060c \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u0646\u0645\u06cc \u062f\u0647\u062f. \u062f\u0631 \u0645\u0627 App.tsx:<\/p>\n<p>\/\/ App.tsx<br \/>\n\/\/ Other imports&#8230;<br \/>\nimport { ThemeContext } from &#8216;.\/context\/ThemeContext&#8217;;<br \/>\nimport ContextExample from &#8216;.\/components\/ContextExample&#8217;;<\/p>\n<p>function App() {<br \/>\n  const { theme } = use(ThemeContext);<\/p>\n<p>  return (<br \/>\n    &lt;div className={`App ${theme}`}&gt;<br \/>\n      &lt;ContextExample \/&gt;<br \/>\n    div&gt;<br \/>\n  )<br \/>\n}<\/p>\n<p>export default App;<\/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 \u062f\u0631 \u062d\u0627\u0644 \u0648\u0627\u0631\u062f\u0627\u062a \u0648 \u0639\u0628\u0648\u0631 \u0647\u0633\u062a\u06cc\u0645 theme \u0627\u0632 ThemeCotnext \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u0628\u0631\u0627\u06cc \u0645\u0627 App.tsx\u062f\u0631 \u062d\u0627\u0644 \u0628\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc . Now we can go into our App.css \u0641\u0627\u06cc\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u0686\u0646\u062f \u0633\u0628\u06a9 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f \u0622\u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062a\u0645 \u0645\u0627 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f \u06cc\u0627 \u062e\u06cc\u0631!:<\/p>\n<p>\/* App.css *\/<br \/>\n.dark {<br \/>\n  background-color: black;<br \/>\n  color: white;<br \/>\n}<\/p>\n<p>.light {<br \/>\n  background-color: white;<br \/>\n  color: black;<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>\u0632\u06cc\u0627\u062f \u0646\u06cc\u0633\u062a&#8230; \u0627\u0645\u0627 \u0628\u0647 \u0645\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 use \u0648 React Context \u06a9\u0627\u0645\u0644\u0627\u064b \u06a9\u0627\u0645\u0644 \u0627\u0633\u062a. \u0627\u062f\u0627\u0645\u0647 \u0628\u062f\u0647! \u0622\u0646 \u062f\u06a9\u0645\u0647 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n<p>\u0622\u06cc\u0627 \u0628\u0647 \u0622\u0646 \u0646\u06af\u0627\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f\u061f! \u0632\u0634\u062a\u060c \u0627\u0645\u0627 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc. \u0627\u06cc\u0646 \u0628\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 &#8220;\u0627\u0633\u062a\u0641\u0627\u062f\u0647&#8221; \u0628\u0627 React Context \u067e\u0627\u06cc\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f. \u0628\u0647 \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f \u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0628\u06cc\u0646\u06cc\u062f \u0622\u06cc\u0627 \u062f\u0631 \u0639\u0645\u0644 \u0628\u0627 \u06cc\u06a9 \u0648\u0639\u062f\u0647!<\/p>\n<p>  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 &#8220;\u0627\u0633\u062a\u0641\u0627\u062f\u0647&#8221; \u0628\u0627 \u06cc\u06a9 \u0648\u0639\u062f\u0647 Async<\/p>\n<p>\u0627\u0648\u0644 \u0627\u0632 \u0647\u0645\u0647\u060c \u0645\u0627 \u06cc\u06a9 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 server \u0627\u0642\u062f\u0627\u0645\u060c \u0628\u0631\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u062f\u0631 \u0645\u0648\u0631\u062f \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0648 \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0628\u0627 AWS \u0627\u06cc\u0646 \u0648\u06cc\u062f\u06cc\u0648 \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f.<\/p>\n<p>\u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062c\u062f\u06cc\u062f \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f lib.ts:<\/p>\n<p>\/\/ lib.ts<br \/>\n&#8216;use server&#8217;;<\/p>\n<p>export const fetchMessage = async () =&gt; {<br \/>\n  await new Promise((resolve) =&gt; setTimeout(resolve, 2500));<br \/>\n  return &#8216;Secret Message Recieved!&#8217;;<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 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a API \u0631\u0627 &#8220;\u062c\u0639\u0644&#8221; \u0645\u06cc \u06a9\u0646\u06cc\u0645\u060c \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0627\u0642\u0639\u06cc\u060c \u0627\u06cc\u0646 \u06cc\u06a9 \u062a\u0645\u0627\u0633 \u0628\u0627 \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u06cc\u0627 \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648\u0627\u06a9\u0634\u06cc \u0628\u0647 \u0628\u0631\u062e\u06cc API \u0628\u0631\u0627\u06cc \u06af\u0631\u0641\u062a\u0646 \u0628\u0631\u062e\u06cc \u0627\u0632 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062e\u0627\u0631\u062c\u06cc \u0627\u0633\u062a. \u0627\u0645\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 await\u060c Promise() \u0648 setTimeout \u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u062e\u0648\u062f\u0645\u0627\u0646 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u0645 Promise \u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 2.5 \u062b\u0627\u0646\u06cc\u0647 \u0637\u0648\u0644 \u0645\u06cc \u06a9\u0634\u062f.<\/p>\n<p>\u0645\u0627 \u0628\u0627\u06cc\u062f \u0686\u0646\u062f \u062c\u0632\u0621 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645\u060c \u06cc\u06a9 \u0644\u0641\u0627\u0641 \u06a9\u0647 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f Suspense \u0633\u067e\u0633 \u062f\u0627\u062e\u0644 \u0622\u0646 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0648 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u062f\u06cc\u06af\u0631\u06cc \u06a9\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f use \u0628\u0631\u0627\u06cc \u06af\u0631\u0641\u062a\u0646 \u0646\u062a\u06cc\u062c\u0647 \u0645\u0627 fetchMessage() \u0642\u0648\u0644\u06cc \u06a9\u0647 \u0647\u0645\u06cc\u0646 \u0627\u0644\u0627\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u0645 lib.ts.<\/p>\n<p>\u0627\u06cc\u0646 \u062f\u0648 \u0641\u0627\u06cc\u0644 \u062c\u062f\u06cc\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f Components\/MessageContainer.tsx &#038; Components\/PromiseExample.tsx:<\/p>\n<p>MessageContaienr.tsx:<\/p>\n<p>\/\/ MessageContainer.tsx<br \/>\nimport { Suspense } from &#8216;react&#8217;;<br \/>\nimport PromiseExample from &#8216;.\/PromiseExample&#8217;;<\/p>\n<p>export default function MessageContainer({<br \/>\n  messagePromise,<br \/>\n}: {<br \/>\n  messagePromise: Promise&lt;string&gt;;<br \/>\n}) {<br \/>\n  return (<br \/>\n    &lt;Suspense fallback={&lt;p&gt;Waiting for the message&#8230;p&gt;}&gt;<br \/>\n      &lt;PromiseExample messagePromise={messagePromise} \/&gt;<br \/>\n    Suspense&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>\u0631\u0627  inside the fallback is what will display while we wait for our Promise to resolve.<\/p>\n<p>Now for the PromiseExample.tsx file:<\/p>\n<p>\/\/ PromiseExample<br \/>\n&#8216;use client&#8217;;<\/p>\n<p>import { use } from &#8216;react&#8217;;<\/p>\n<p>export default function PromiseExample({<br \/>\n  messagePromise,<br \/>\n}: {<br \/>\n  messagePromise: Promise&lt;string&gt;;<br \/>\n}) {<br \/>\n  const messageConent = use(messagePromise);<br \/>\n  return &lt;p&gt;Here&#8217;s the message: {messageConent}p&gt;;<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 \u0627\u06cc\u0646\u062c\u0627 \u062c\u0627\u062f\u0648 \u0627\u062a\u0641\u0627\u0642 \u0645\u06cc \u0627\u0641\u062a\u062f\u060c \u0645\u0627 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 use \u062c\u0632\u0621 \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u0642\u062f\u0627\u0631 \u0648\u0639\u062f\u0647 \u062d\u0644\u200c\u0634\u062f\u0647\u060c \u0631\u0634\u062a\u0647 \u00ab\u067e\u06cc\u0627\u0645 \u0645\u062e\u0641\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0634\u062f\u00bb \u0631\u0627 \u062f\u0631 \u0645\u0627 \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u0627\u0646\u06cc\u0645. fetchMessage() \u0642\u0648\u0644 \u0628\u062f\u0647 \u0686\u0642\u062f\u0631 \u0622\u0633\u0627\u0646 \u0627\u0633\u062a\u061f use() \u0648  \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0631\u0627 \u0622\u0633\u0627\u0646 \u06a9\u0646\u06cc\u062f&#8230;<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u062e\u0648\u062f\u0645\u0627\u0646 \u0631\u0627 \u0648\u0635\u0644 \u06a9\u0646\u06cc\u0645 MessageContainer \u0628\u0647 App.tsx \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0639\u0645\u0644 \u0628\u0628\u06cc\u0646\u06cc\u0645!App.tsx:<\/p>\n<p>\/\/ App.tsx<\/p>\n<p>\/\/ Other imports&#8230;<br \/>\nimport { fetchMessage } from &#8216;.\/lib&#8217;;<br \/>\nimport MessageContainer from &#8216;.\/components\/MessageContainer&#8217;;<\/p>\n<p>function App() {<br \/>\n  const { theme } = use(ThemeContext);<\/p>\n<p>  const [messagePromise, setMessagePromise] = useState&lt;Promise&lt;string&gt; | null&gt;(<br \/>\n    null<br \/>\n  );<\/p>\n<p>  const handleFetchMessage = () =&gt; {<br \/>\n    setMessagePromise(fetchMessage());<br \/>\n  };<\/p>\n<p>  return (<br \/>\n        &lt;div className={`App ${theme}`}&gt;<br \/>\n        &lt;ContextExample \/&gt;<br \/>\n        &lt;button onClick={() =&gt; handleFetchMessage()}&gt;Send Messagebutton&gt;<br \/>\n        {messagePromise &amp;&amp; &lt;MessageContainer messagePromise={messagePromise} \/&gt;}<br \/>\n    div&gt;<br \/>\n  )<br \/>\n}<\/p>\n<p>export default App;<\/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 \u06cc\u06a9 \u0634\u06cc\u0621 \u062d\u0627\u0644\u062a \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 messagePromise\u060c \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f null. \u0627\u06cc\u0646 \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u0627\u0633\u062a \u06a9\u0647 \u0627\u06af\u0631 \u0647\u0646\u0648\u0632 \u0622\u0646 \u0631\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0646\u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u0645\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u067e\u06cc\u0627\u0645 \u0631\u0627 \u067e\u0646\u0647\u0627\u0646 \u06a9\u0646\u06cc\u0645.\u0631\u0627 handleFetchMessage() \u062a\u0627\u0628\u0639 \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f messagePromise \u0648\u0636\u0639\u06cc\u062a \u062d\u0627\u0648\u06cc \u067e\u06cc\u0627\u0645 Promise \u0627\u0632 \u0637\u0631\u0641 \u0645\u0627 \u0628\u0627\u0634\u062f fetchMessage \u0639\u0645\u0644 \u0633\u0631\u0648\u0631 \u06cc\u06a9 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u0645  \u0628\u0631\u0627\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc handleFetchMessage. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0645\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u0634\u0631\u0648\u0637 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u06cc\u0645  \u062f\u0631 FE \u0645\u0627 \u0628\u0633\u062a\u0647 \u0628\u0647 \u0648\u0636\u0639\u06cc\u062a messagePromise\u060c \u0627\u06cc\u0646 \u0628\u062f\u0627\u0646 \u0645\u0639\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0641\u0642\u0637 \u0645\u0627 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f  \u062c\u0632\u0621 \u06cc\u06a9 \u0628\u0627\u0631 fetchMessage() \u0648\u0639\u062f\u0647 \u0622\u063a\u0627\u0632 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u067e\u0633 \u0627\u0632 \u0632\u062f\u0646 \u0627\u06cc\u0646 \u062f\u06a9\u0645\u0647:  handleFetchMessage()}&gt;Send Message. \u0645\u0627 \u0628\u0647 \u062e\u0648\u062f\u0645\u0627\u0646 \u0632\u0646\u06af \u0645\u06cc \u0632\u0646\u06cc\u0645 fetchMessage() \u0627\u0642\u062f\u0627\u0645 \u0633\u0631\u0648\u0631\u060c \u0628\u0627\u0632\u06af\u0634\u062a\u06cc \u062f\u0631 Suspense \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062a\u062d\u0631\u06cc\u06a9 \u0645\u06cc \u0634\u0648\u062f use() \u0645\u0646\u062a\u0638\u0631 \u0627\u0633\u062a \u062a\u0627 \u0648\u0639\u062f\u0647 \u062d\u0644 \u0634\u0648\u062f.<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 Promise \u062d\u0644 \u0634\u062f\u060c \u0627\u0632 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0632 Promise \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u06a9\u0631\u062f\u06cc\u0645 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 use \u0642\u0644\u0627\u0628 \u06a9\u0646\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 FE \u0645\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u062f:<\/p>\n<p>\u0648\u0627\u06cc&#8230;\u062e\u06cc\u0644\u06cc \u0628\u0648\u062f \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645 \u0645\u0646\u0637\u0642\u06cc \u0628\u0627\u0634\u0647! \u0628\u062e\u0634 \u06a9\u0644\u06cc\u062f\u06cc \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u0622\u0646 \u0628\u0627\u06cc\u062f \u0628\u0647 \u062e\u0627\u0637\u0631 \u0628\u0633\u067e\u0627\u0631\u06cc\u062f use \u0648 Promises \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u06cc \u0631\u0627 \u06a9\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u0628\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f use \u062f\u0631 \u06cc\u06a9 Suspense \u0648 \u0628\u0639\u062f \u0627\u0632 \u0622\u0646\u060c \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u062a\u0645\u0627\u0633 \u06af\u0631\u0641\u062a\u0646 \u0627\u0633\u062a use(promiseIWantTheValueOf) <\/p>\n<div data-article-id=\"2128174\" id=\"article-body\">\n<p>\u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0627\u0631\u0632\u0634 \u06cc\u06a9 Promise \u06cc\u0627 \u06cc\u06a9 Context \u0631\u0627 \u062f\u0631 \u062f\u0627\u062e\u0644 \u06cc\u06a9 \u062c\u0632\u0621 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f<\/p>\n<p><code>const value = use(resource)<\/code><\/p>\n<p>\u06cc\u06a9 \u0645\u062b\u0627\u0644 \u06a9\u0648\u062a\u0627\u0647 \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0645\u062a\u0646 \u06cc\u0627 \u0648\u0639\u062f\u0647 \u0645\u0642\u0627\u062f\u06cc\u0631\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u06cc\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight tsx\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">use<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">react<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">MessageComponent<\/span> <span class=\"p\">({<\/span> <span class=\"nx\">messagePromise<\/span> <span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">message<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"nx\">messagePromise<\/span><span class=\"p\">);<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">theme<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"nx\">ThemeContext<\/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>\u0627\u06af\u0631 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0647 \u062c\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646\u060c \u062a\u0645\u0627\u0634\u0627 \u06a9\u0646\u06cc\u062f\u060c \u06cc\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062a\u0646 \u0648 \u0648\u0639\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0627 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u06a9\u0646\u06cc\u062f\u060c \u0627\u06cc\u0646 \u0648\u06cc\u062f\u06cc\u0648 \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f<\/p>\n<p>\u0645\u0624\u0644\u0641\u0647 \u0627\u06cc \u06a9\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0627\u0645\u06cc\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f \u0628\u0627\u06cc\u062f \u0628\u0627 \u0622\u0646 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0634\u0648\u062f <code>Suspense<\/code> \u0648 \u0628\u0647 \u0635\u0648\u0631\u062a \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc <code>error boundaries<\/code>. \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062d\u0644 \u0648 \u0641\u0635\u0644 \u0648\u0639\u062f\u0647 \u0648 \u06af\u0631\u0641\u062a\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 <code>context<\/code>\u060c \u0628\u0627\u0632\u06af\u0634\u062a \u0627\u0632 <code>Suspense<\/code> \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f. \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 Promise \u062d\u0644 \u0634\u062f\u060c \u0645\u0648\u0644\u0641\u0647 \u0647\u0627\u06cc \u0631\u0646\u062f\u0631 \u0634\u062f\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 <code>use<\/code> API.<\/p>\n<p>\u0627\u06af\u0631 \u0648\u0639\u062f\u0647 \u06af\u0630\u0634\u062a \u0628\u0647 <code>use<\/code> \u0631\u062f \u0645\u06cc \u0634\u0648\u062f\u060c \u0628\u0627\u0632\u06af\u0634\u062a \u0646\u0632\u062f\u06cc\u06a9\u062a\u0631\u06cc\u0646 \u0645\u0631\u0632 \u062e\u0637\u0627 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/how-to-use-use-the-new-react-19-hook-4ah5\/#%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_%E2%80%9Cuse%E2%80%9D_%D8%A8%D8%A7_React_Context\" >\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 &#8220;use&#8221; \u0628\u0627 React Context<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/how-to-use-use-the-new-react-19-hook-4ah5\/#%D8%AA%D9%86%D8%B8%DB%8C%D9%85_Context\" >\u062a\u0646\u0638\u06cc\u0645 Context<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/how-to-use-use-the-new-react-19-hook-4ah5\/#%D9%82%D8%B1%D8%A7%D8%B1_%D8%AF%D8%A7%D8%AF%D9%86_%E2%80%9C%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87%E2%80%9D_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A8%D8%A7_Context\" >\u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 &#8220;\u0627\u0633\u062a\u0641\u0627\u062f\u0647&#8221; \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u0627 Context<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/how-to-use-use-the-new-react-19-hook-4ah5\/#%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_%22%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87%22_%D8%A8%D8%A7_%DB%8C%DA%A9_%D9%88%D8%B9%D8%AF%D9%87_Async\" >\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \"\u0627\u0633\u062a\u0641\u0627\u062f\u0647\" \u0628\u0627 \u06cc\u06a9 \u0648\u0639\u062f\u0647 Async<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/how-to-use-use-the-new-react-19-hook-4ah5\/#%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\" >\u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_%E2%80%9Cuse%E2%80%9D_%D8%A8%D8%A7_React_Context\"><\/span>\n<p>  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 &#8220;use&#8221; \u0628\u0627 React Context<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AA%D9%86%D8%B8%DB%8C%D9%85_Context\"><\/span>\n<p>  \u062a\u0646\u0638\u06cc\u0645 Context<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u06cc \u0631\u0627 \u0628\u0647 \u0622\u0646 \u0645\u062a\u0635\u0644 \u06a9\u0646\u06cc\u0645 <code>Context<\/code>.<\/p>\n<p>\u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06cc\u06a9 \u062a\u0645 \u0633\u0641\u0627\u0631\u0634\u06cc\u060c \u0631\u0648\u0634\u0646 \u0648 \u062a\u0627\u0631\u06cc\u06a9 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u0645. \u0645\u0627 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 <code>ThemeContext.ts<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ ThemeContext.ts<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">createContext<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Dispatch<\/span><span class=\"p\">,<\/span> <span class=\"nx\">SetStateAction<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">type<\/span> <span class=\"nx\">Theme<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">light<\/span><span class=\"dl\">'<\/span> <span class=\"o\">|<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">dark<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kr\">interface<\/span> <span class=\"nx\">IThemeContext<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">theme<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Theme<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">setTheme<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Dispatch<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">SetStateAction<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">Theme<\/span><span class=\"o\">&gt;&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">ThemeContext<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">createContext<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">IThemeContext<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">({<\/span>\n  <span class=\"na\">theme<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">dark<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">setTheme<\/span><span class=\"p\">:<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/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>\u0645\u0648\u0627\u0631\u062f \u0641\u0648\u0642 \u0634\u06cc\u0621 ThemeContext \u0645\u0627 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u060c \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0622\u0646 \u0631\u0627 \u0627\u0632 \u0647\u0631 \u0641\u0627\u06cc\u0644\u06cc \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0645\u0648\u0636\u0648\u0639 \u0641\u0639\u0644\u06cc \u0631\u0627 \u0628\u06af\u06cc\u0631\u06cc\u0645 \u0648 setTheme \u0628\u0631\u0627\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0637\u0631\u062d \u0632\u0645\u06cc\u0646\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f. \u0645\u0627 \u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0645\u0648\u0636\u0648\u0639 \u0631\u0627 \u00ab\u062a\u0627\u0631\u06cc\u06a9\u00bb \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645\u060c \u0632\u06cc\u0631\u0627 \u0628\u0647 \u0646\u0638\u0631 \u0628\u0633\u06cc\u0627\u0631 \u062c\u0627\u0644\u0628\u200c\u062a\u0631 \u0645\u06cc\u200c\u0631\u0633\u062f.<\/p>\n<p>\u0633\u067e\u0633 \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0647\u0645\u0647 \u0632\u0645\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc\u0645\u0627\u0646\u060c a \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 <code>Context.tsx<\/code> \u062c\u0632\u0621\u060c \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u0628\u0647 \u062e\u0648\u0628\u06cc \u0633\u0627\u0632\u0645\u0627\u0646\u062f\u0647\u06cc \u0634\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight tsx\"><code><span class=\"c1\">\/\/ Context.tsx<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useState<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">ThemeContext<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/ThemeContext<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Theme<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">..\/types<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">Context<\/span><span class=\"p\">({<\/span> <span class=\"nx\">children<\/span> <span class=\"p\">}:<\/span> <span class=\"p\">{<\/span> <span class=\"nl\">children<\/span><span class=\"p\">:<\/span> <span class=\"nx\">React<\/span><span class=\"p\">.<\/span><span class=\"nx\">ReactNode<\/span> <span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">theme<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setTheme<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">Theme<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">dark<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nc\">ThemeContext<\/span><span class=\"p\">.<\/span><span class=\"nc\">Provider<\/span>\n      <span class=\"na\">value<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"p\">{<\/span>\n        <span class=\"nx\">theme<\/span><span class=\"p\">,<\/span>\n        <span class=\"na\">setTheme<\/span><span class=\"p\">:<\/span> <span class=\"nx\">setTheme<\/span><span class=\"p\">,<\/span>\n      <span class=\"p\">}<\/span><span class=\"si\">}<\/span>\n    <span class=\"p\">&gt;<\/span>\n      <span class=\"si\">{<\/span><span class=\"nx\">children<\/span><span class=\"si\">}<\/span>\n    <span class=\"p\"\/><span class=\"nc\">ThemeContext<\/span><span class=\"p\">.<\/span><span class=\"nc\">Provider<\/span><span class=\"p\">&gt;<\/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>\u0645\u0627 \u0634\u06cc\u0621 \u062d\u0627\u0644\u062a \u0631\u0627 \u0628\u0647 \u0645\u0627 \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>ThemeContext.Provider<\/code>\u060c \u06a9\u0647 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0648 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u062a\u0645 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0628\u0631\u0627\u06cc \u0628\u0647 \u0647\u0645 \u0632\u062f\u0646 \u0627\u06cc\u0646 \u0647\u0645\u0647\u060c \u0645\u0627 \u0628\u0627\u06cc\u062f \u062e\u0648\u062f \u0631\u0627 \u0628\u067e\u06cc\u0686\u06cc\u0645 <code><app\/><\/code> \u062c\u0632\u0621 \u062f\u0631 \u0645\u0627 <code><context\/><\/code> \u062c\u0632\u0621<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight tsx\"><code><span class=\"c1\">\/\/ index.tsx<\/span>\n\n<span class=\"c1\">\/\/ ... Other imports etc.<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">Context<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/Context.tsx<\/span><span class=\"dl\">'<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">root<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">ReactDOM<\/span><span class=\"p\">.<\/span><span class=\"nf\">createRoot<\/span><span class=\"p\">(<\/span>\n  <span class=\"nb\">document<\/span><span class=\"p\">.<\/span><span class=\"nf\">getElementById<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">root<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">HTMLElement<\/span>\n<span class=\"p\">);<\/span>\n<span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nf\">render<\/span><span class=\"p\">(<\/span>\n  <span class=\"p\">&lt;<\/span><span class=\"nc\">React<\/span><span class=\"p\">.<\/span><span class=\"nc\">StrictMode<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nc\">Context<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nc\">App<\/span> <span class=\"p\">\/&gt;<\/span>\n    <span class=\"p\"\/><span class=\"nc\">Context<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"p\"\/><span class=\"nc\">React<\/span><span class=\"p\">.<\/span><span class=\"nc\">StrictMode<\/span><span class=\"p\">&gt;<\/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 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 <code><app\/><\/code> \u0648 \u0641\u0631\u0632\u0646\u062f\u0627\u0646 \u0622\u0646 (\u06a9\u0647 \u0627\u0633\u0627\u0633\u0627\u064b \u06a9\u0644 \u067e\u0631\u0648\u0698\u0647 \u0645\u0627\u0633\u062a) \u0628\u0647 \u0645\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u0646\u062f \u062f\u0627\u0634\u062a <code>ThemeContext<\/code>.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%82%D8%B1%D8%A7%D8%B1_%D8%AF%D8%A7%D8%AF%D9%86_%E2%80%9C%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87%E2%80%9D_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A8%D8%A7_Context\"><\/span>\n<p>  \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 &#8220;\u0627\u0633\u062a\u0641\u0627\u062f\u0647&#8221; \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u0627 Context<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0645\u0624\u0644\u0641\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0645\u0648\u0636\u0648\u0639 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u062f! <code>Components\/ContextExample.tsx<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight tsx\"><code><span class=\"c1\">\/\/ ContextExample.tsx<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">use<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">ThemeContext<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">..\/context\/ThemeContext<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">ContextExample<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">setTheme<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"nx\">ThemeContext<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">handleThemeToggle<\/span> <span class=\"o\">=<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nf\">setTheme<\/span><span class=\"p\">((<\/span><span class=\"nx\">prevTheme<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">prevTheme<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">light<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">dark<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n      <span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">light<\/span><span class=\"dl\">'<\/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=\"p\">&lt;<\/span><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">button<\/span> <span class=\"na\">onClick<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nf\">handleThemeToggle<\/span><span class=\"p\">()<\/span><span class=\"si\">}<\/span><span class=\"p\">&gt;<\/span>Switch Theme<span class=\"p\"\/><span class=\"nt\">button<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\"\/><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/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>\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0686\u0646\u06af \u0632\u062f\u0646 \u0628\u0647 <code>setTheme<\/code> \u0631\u0648\u0634 \u0627\u0632 <code>ThemeContext<\/code>. \u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0631\u0627\u0626\u0647 a <code><button\/><\/code> \u06a9\u0647 <code>onClick<\/code> \u062a\u0645\u0627\u0633 \u0645\u06cc \u06af\u06cc\u0631\u062f <code>handleThemeToggle()<\/code> \u06a9\u0647 \u0645\u0648\u0636\u0648\u0639 \u0641\u0639\u0644\u06cc \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06af\u0631 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 &#8220;\u0631\u0648\u0634\u0646&#8221; \u0627\u0633\u062a\u060c \u062a\u0645 \u0631\u0627 \u0631\u0648\u06cc &#8220;\u062a\u0627\u0631\u06cc\u06a9&#8221; \u0648 \u0628\u0631\u0639\u06a9\u0633 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644&#8230; \u062a\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0622\u0646 \u0631\u0627 \u0648\u0627\u0631\u062f \u0646\u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0633\u0628\u06a9 \u0647\u0627 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0646\u06a9\u0646\u06cc\u0645\u060c \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u0646\u0645\u06cc \u062f\u0647\u062f. \u062f\u0631 \u0645\u0627 <code>App.tsx<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight tsx\"><code><span class=\"c1\">\/\/ App.tsx<\/span>\n<span class=\"c1\">\/\/ Other imports...<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">ThemeContext<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/context\/ThemeContext<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">ContextExample<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/components\/ContextExample<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">App<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">theme<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"nx\">ThemeContext<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"s2\">`App <\/span><span class=\"p\">${<\/span><span class=\"nx\">theme<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"si\">}<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nc\">ContextExample<\/span> <span class=\"p\">\/&gt;<\/span>\n    <span class=\"p\"\/><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">App<\/span><span class=\"p\">;<\/span>\n\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>\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0648\u0627\u0631\u062f\u0627\u062a \u0648 \u0639\u0628\u0648\u0631 \u0647\u0633\u062a\u06cc\u0645 <code>theme<\/code> \u0627\u0632 <code>ThemeCotnext<\/code> \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u0628\u0631\u0627\u06cc \u0645\u0627 <code>App.tsx<\/code>\u062f\u0631 \u062d\u0627\u0644 \u0628\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc <code><\/p>\n<div>. Now we can go into our <code>App.css<\/code> \u0641\u0627\u06cc\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u0686\u0646\u062f \u0633\u0628\u06a9 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f \u0622\u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062a\u0645 \u0645\u0627 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f \u06cc\u0627 \u062e\u06cc\u0631!:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight css\"><code><span class=\"c\">\/* App.css *\/<\/span>\n<span class=\"nc\">.dark<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">background-color<\/span><span class=\"p\">:<\/span> <span class=\"no\">black<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">color<\/span><span class=\"p\">:<\/span> <span class=\"no\">white<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nc\">.light<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">background-color<\/span><span class=\"p\">:<\/span> <span class=\"no\">white<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">color<\/span><span class=\"p\">:<\/span> <span class=\"no\">black<\/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>\u0632\u06cc\u0627\u062f \u0646\u06cc\u0633\u062a... \u0627\u0645\u0627 \u0628\u0647 \u0645\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>use<\/code> \u0648 React Context \u06a9\u0627\u0645\u0644\u0627\u064b \u06a9\u0627\u0645\u0644 \u0627\u0633\u062a. \u0627\u062f\u0627\u0645\u0647 \u0628\u062f\u0647! \u0622\u0646 \u062f\u06a9\u0645\u0647 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foiwhjl74g0mt0utut8b9.png\" alt=\"\u062a\u0645 \u0633\u0628\u06a9\" loading=\"lazy\" width=\"588\" height=\"164\" title=\"\"><\/p>\n<p>\u0622\u06cc\u0627 \u0628\u0647 \u0622\u0646 \u0646\u06af\u0627\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f\u061f! \u0632\u0634\u062a\u060c \u0627\u0645\u0627 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc. \u0627\u06cc\u0646 \u0628\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \"\u0627\u0633\u062a\u0641\u0627\u062f\u0647\" \u0628\u0627 React Context \u067e\u0627\u06cc\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f. \u0628\u0647 \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f \u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0628\u06cc\u0646\u06cc\u062f \u0622\u06cc\u0627 \u062f\u0631 \u0639\u0645\u0644 \u0628\u0627 \u06cc\u06a9 \u0648\u0639\u062f\u0647!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_%22%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87%22_%D8%A8%D8%A7_%DB%8C%DA%A9_%D9%88%D8%B9%D8%AF%D9%87_Async\"><\/span>\n<p>  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \"\u0627\u0633\u062a\u0641\u0627\u062f\u0647\" \u0628\u0627 \u06cc\u06a9 \u0648\u0639\u062f\u0647 Async<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0648\u0644 \u0627\u0632 \u0647\u0645\u0647\u060c \u0645\u0627 \u06cc\u06a9 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>server<\/code> \u0627\u0642\u062f\u0627\u0645\u060c \u0628\u0631\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u062f\u0631 \u0645\u0648\u0631\u062f \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0648 \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0628\u0627 AWS \u0627\u06cc\u0646 \u0648\u06cc\u062f\u06cc\u0648 \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f.<\/p>\n<p>\u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062c\u062f\u06cc\u062f \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f <code>lib.ts<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ lib.ts<\/span>\n<span class=\"dl\">'<\/span><span class=\"s1\">use server<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">fetchMessage<\/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\">await<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Promise<\/span><span class=\"p\">((<\/span><span class=\"nx\">resolve<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nf\">setTimeout<\/span><span class=\"p\">(<\/span><span class=\"nx\">resolve<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2500<\/span><span class=\"p\">));<\/span>\n  <span class=\"k\">return<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Secret Message Recieved!<\/span><span class=\"dl\">'<\/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>\u0645\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a API \u0631\u0627 \"\u062c\u0639\u0644\" \u0645\u06cc \u06a9\u0646\u06cc\u0645\u060c \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0627\u0642\u0639\u06cc\u060c \u0627\u06cc\u0646 \u06cc\u06a9 \u062a\u0645\u0627\u0633 \u0628\u0627 \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u06cc\u0627 \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648\u0627\u06a9\u0634\u06cc \u0628\u0647 \u0628\u0631\u062e\u06cc API \u0628\u0631\u0627\u06cc \u06af\u0631\u0641\u062a\u0646 \u0628\u0631\u062e\u06cc \u0627\u0632 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062e\u0627\u0631\u062c\u06cc \u0627\u0633\u062a. \u0627\u0645\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 <code>await<\/code>\u060c <code>Promise()<\/code> \u0648 <code>setTimeout<\/code> \u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u062e\u0648\u062f\u0645\u0627\u0646 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u0645 <code>Promise<\/code> \u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 2.5 \u062b\u0627\u0646\u06cc\u0647 \u0637\u0648\u0644 \u0645\u06cc \u06a9\u0634\u062f.<\/p>\n<p>\u0645\u0627 \u0628\u0627\u06cc\u062f \u0686\u0646\u062f \u062c\u0632\u0621 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645\u060c \u06cc\u06a9 \u0644\u0641\u0627\u0641 \u06a9\u0647 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f <code>Suspense<\/code> \u0633\u067e\u0633 \u062f\u0627\u062e\u0644 \u0622\u0646 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0648 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u062f\u06cc\u06af\u0631\u06cc \u06a9\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f <code>use<\/code> \u0628\u0631\u0627\u06cc \u06af\u0631\u0641\u062a\u0646 \u0646\u062a\u06cc\u062c\u0647 \u0645\u0627 <code>fetchMessage()<\/code> \u0642\u0648\u0644\u06cc \u06a9\u0647 \u0647\u0645\u06cc\u0646 \u0627\u0644\u0627\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u0645 <code>lib.ts<\/code>.<\/p>\n<p>\u0627\u06cc\u0646 \u062f\u0648 \u0641\u0627\u06cc\u0644 \u062c\u062f\u06cc\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f <code>Components\/MessageContainer.tsx<\/code> & <code>Components\/PromiseExample.tsx<\/code>:<\/p>\n<p><code>MessageContaienr.tsx<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight tsx\"><code><span class=\"c1\">\/\/ MessageContainer.tsx<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Suspense<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">PromiseExample<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/PromiseExample<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">MessageContainer<\/span><span class=\"p\">({<\/span>\n  <span class=\"nx\">messagePromise<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">}:<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">messagePromise<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Promise<\/span><span class=\"o\">&lt;<\/span><span class=\"kr\">string<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nc\">Suspense<\/span> <span class=\"na\">fallback<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"p\">&lt;<\/span><span class=\"nt\">p<\/span><span class=\"p\">&gt;<\/span>Waiting for the message...<span class=\"p\"\/><span class=\"nt\">p<\/span><span class=\"p\">&gt;<\/span><span class=\"si\">}<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nc\">PromiseExample<\/span> <span class=\"na\">messagePromise<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"nx\">messagePromise<\/span><span class=\"si\">}<\/span> <span class=\"p\">\/&gt;<\/span>\n    <span class=\"p\"\/><span class=\"nc\">Suspense<\/span><span class=\"p\">&gt;<\/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>\u0631\u0627 <code\/> inside the fallback is what will display while we wait for our Promise to resolve.<\/p>\n<p>Now for the <code>PromiseExample.tsx file<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight tsx\"><code><span class=\"c1\">\/\/ PromiseExample<\/span>\n<span class=\"dl\">'<\/span><span class=\"s1\">use client<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">use<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">PromiseExample<\/span><span class=\"p\">({<\/span>\n  <span class=\"nx\">messagePromise<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">}:<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">messagePromise<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Promise<\/span><span class=\"o\">&lt;<\/span><span class=\"kr\">string<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">messageConent<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"nx\">messagePromise<\/span><span class=\"p\">);<\/span>\n  <span class=\"k\">return<\/span> <span class=\"p\">&lt;<\/span><span class=\"nt\">p<\/span><span class=\"p\">&gt;<\/span>Here's the message: <span class=\"si\">{<\/span><span class=\"nx\">messageConent<\/span><span class=\"si\">}<\/span><span class=\"p\"\/><span class=\"nt\">p<\/span><span class=\"p\">&gt;;<\/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 \u0627\u06cc\u0646\u062c\u0627 \u062c\u0627\u062f\u0648 \u0627\u062a\u0641\u0627\u0642 \u0645\u06cc \u0627\u0641\u062a\u062f\u060c \u0645\u0627 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>use<\/code> \u062c\u0632\u0621 \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u0642\u062f\u0627\u0631 \u0648\u0639\u062f\u0647 \u062d\u0644\u200c\u0634\u062f\u0647\u060c \u0631\u0634\u062a\u0647 \u00ab\u067e\u06cc\u0627\u0645 \u0645\u062e\u0641\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0634\u062f\u00bb \u0631\u0627 \u062f\u0631 \u0645\u0627 \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u0627\u0646\u06cc\u0645. <code>fetchMessage()<\/code> \u0642\u0648\u0644 \u0628\u062f\u0647 \u0686\u0642\u062f\u0631 \u0622\u0633\u0627\u0646 \u0627\u0633\u062a\u061f <code>use()<\/code> \u0648 <code><suspense\/><\/code> \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0631\u0627 \u0622\u0633\u0627\u0646 \u06a9\u0646\u06cc\u062f...<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u062e\u0648\u062f\u0645\u0627\u0646 \u0631\u0627 \u0648\u0635\u0644 \u06a9\u0646\u06cc\u0645 <code>MessageContainer<\/code> \u0628\u0647 <code>App.tsx<\/code> \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0639\u0645\u0644 \u0628\u0628\u06cc\u0646\u06cc\u0645!<br \/><code>App.tsx<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight tsx\"><code><span class=\"c1\">\/\/ App.tsx<\/span>\n\n<span class=\"c1\">\/\/ Other imports...<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">fetchMessage<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/lib<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">MessageContainer<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/components\/MessageContainer<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">App<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">theme<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"nx\">ThemeContext<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">messagePromise<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setMessagePromise<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\">&lt;<\/span><span class=\"nb\">Promise<\/span><span class=\"o\">&lt;<\/span><span class=\"kr\">string<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">|<\/span> <span class=\"kc\">null<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span>\n    <span class=\"kc\">null<\/span>\n  <span class=\"p\">);<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">handleFetchMessage<\/span> <span class=\"o\">=<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nf\">setMessagePromise<\/span><span class=\"p\">(<\/span><span class=\"nf\">fetchMessage<\/span><span class=\"p\">());<\/span>\n  <span class=\"p\">};<\/span>\n\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"s2\">`App <\/span><span class=\"p\">${<\/span><span class=\"nx\">theme<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"si\">}<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nc\">ContextExample<\/span> <span class=\"p\">\/&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\">button<\/span> <span class=\"na\">onClick<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nf\">handleFetchMessage<\/span><span class=\"p\">()<\/span><span class=\"si\">}<\/span><span class=\"p\">&gt;<\/span>Send Message<span class=\"p\"\/><span class=\"nt\">button<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"si\">{<\/span><span class=\"nx\">messagePromise<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"p\">&lt;<\/span><span class=\"nc\">MessageContainer<\/span> <span class=\"na\">messagePromise<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"nx\">messagePromise<\/span><span class=\"si\">}<\/span> <span class=\"p\">\/&gt;<\/span><span class=\"si\">}<\/span>\n    <span class=\"p\"\/><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">App<\/span><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>\u0645\u0627 \u06cc\u06a9 \u0634\u06cc\u0621 \u062d\u0627\u0644\u062a \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>messagePromise<\/code>\u060c \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f <code>null<\/code>. \u0627\u06cc\u0646 \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u0627\u0633\u062a \u06a9\u0647 \u0627\u06af\u0631 \u0647\u0646\u0648\u0632 \u0622\u0646 \u0631\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0646\u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u0645\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u067e\u06cc\u0627\u0645 \u0631\u0627 \u067e\u0646\u0647\u0627\u0646 \u06a9\u0646\u06cc\u0645.<br \/>\u0631\u0627 <code>handleFetchMessage()<\/code> \u062a\u0627\u0628\u0639 \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f <code>messagePromise<\/code> \u0648\u0636\u0639\u06cc\u062a \u062d\u0627\u0648\u06cc \u067e\u06cc\u0627\u0645 Promise \u0627\u0632 \u0637\u0631\u0641 \u0645\u0627 \u0628\u0627\u0634\u062f <code>fetchMessage<\/code> \u0639\u0645\u0644 \u0633\u0631\u0648\u0631 \u06cc\u06a9 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u0645 <code><button\/><\/code> \u0628\u0631\u0627\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc handleFetchMessage. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0645\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u0634\u0631\u0648\u0637 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u06cc\u0645 <code><messagecotnainer\/><\/code> \u062f\u0631 FE \u0645\u0627 \u0628\u0633\u062a\u0647 \u0628\u0647 \u0648\u0636\u0639\u06cc\u062a <code>messagePromise<\/code>\u060c \u0627\u06cc\u0646 \u0628\u062f\u0627\u0646 \u0645\u0639\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0641\u0642\u0637 \u0645\u0627 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f <code><messagepromisecontainer\/><\/code> \u062c\u0632\u0621 \u06cc\u06a9 \u0628\u0627\u0631 <code>fetchMessage()<\/code> \u0648\u0639\u062f\u0647 \u0622\u063a\u0627\u0632 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u067e\u0633 \u0627\u0632 \u0632\u062f\u0646 \u0627\u06cc\u0646 \u062f\u06a9\u0645\u0647: <code><button onclick=\"{()\"> handleFetchMessage()}&gt;Send Message<\/button><\/code>. \u0645\u0627 \u0628\u0647 \u062e\u0648\u062f\u0645\u0627\u0646 \u0632\u0646\u06af \u0645\u06cc \u0632\u0646\u06cc\u0645 <code>fetchMessage()<\/code> \u0627\u0642\u062f\u0627\u0645 \u0633\u0631\u0648\u0631\u060c \u0628\u0627\u0632\u06af\u0634\u062a\u06cc \u062f\u0631 <code>Suspense<\/code> \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062a\u062d\u0631\u06cc\u06a9 \u0645\u06cc \u0634\u0648\u062f <code>use()<\/code> \u0645\u0646\u062a\u0638\u0631 \u0627\u0633\u062a \u062a\u0627 \u0648\u0639\u062f\u0647 \u062d\u0644 \u0634\u0648\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft0spq8byuc4c7i73nbqh.png\" alt=\"Promise \u062f\u0631 \u062d\u0627\u0644 \u062d\u0644 \u0634\u062f\u0646 \u0627\u0633\u062a \u0648 \u062a\u0639\u0644\u06cc\u0642 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0639\u0642\u0628 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f\" loading=\"lazy\" width=\"800\" height=\"407\" title=\"\"><\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 Promise \u062d\u0644 \u0634\u062f\u060c \u0627\u0632 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0632 Promise \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u06a9\u0631\u062f\u06cc\u0645 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>use<\/code> \u0642\u0644\u0627\u0628 \u06a9\u0646\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 FE \u0645\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u062f:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv47hoicva0hg93x00765.png\" alt=\"\u067e\u06cc\u0627\u0645 \u062d\u0644 \u0634\u062f\u0647 \u0627\u0632 \u0642\u0648\u0644\" loading=\"lazy\" width=\"800\" height=\"214\" title=\"\"><\/p>\n<p>\u0648\u0627\u06cc...\u062e\u06cc\u0644\u06cc \u0628\u0648\u062f \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645 \u0645\u0646\u0637\u0642\u06cc \u0628\u0627\u0634\u0647! \u0628\u062e\u0634 \u06a9\u0644\u06cc\u062f\u06cc \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u0622\u0646 \u0628\u0627\u06cc\u062f \u0628\u0647 \u062e\u0627\u0637\u0631 \u0628\u0633\u067e\u0627\u0631\u06cc\u062f <code>use<\/code> \u0648 Promises \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u06cc \u0631\u0627 \u06a9\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u0628\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f <code>use<\/code> \u062f\u0631 \u06cc\u06a9 <code>Suspense<\/code> \u0648 \u0628\u0639\u062f \u0627\u0632 \u0622\u0646\u060c \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u062a\u0645\u0627\u0633 \u06af\u0631\u0641\u062a\u0646 \u0627\u0633\u062a <code>use(promiseIWantTheValueOf)<\/code> <-- \u0646\u0627\u0645 \u0645\u062a\u063a\u06cc\u0631 \u0627\u0641\u062a\u0636\u0627\u062d \u062f\u0631\u0633\u062a \u0627\u0633\u062a\u061f<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\"><\/span>\n<p>  \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0633\u062a\u0641\u0627\u062f\u0647\u060c \u0628\u0631 \u062e\u0644\u0627\u0641 React Hooks\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u062f\u0627\u062e\u0644 \u06cc\u06a9 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f <code>if<\/code> \u06cc\u0627 <code>for<\/code> \u0628\u06cc\u0627\u0646\u06cc\u0647 \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c <code>use<\/code> \u0645\u06cc \u062a\u0648\u0627\u0646\u062f <strong>\u0641\u0642\u0637<\/strong> \u062f\u0631 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u06cc\u0627 \u0647\u0648\u06a9 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f. \u0645\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u0645 \u0628\u0628\u06cc\u0646\u0645 \u06a9\u0647 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0632\u0645\u0627\u0646\u06cc \u0645\u0641\u06cc\u062f \u0627\u0633\u062a \u06a9\u0647 \u0634\u0645\u0627 \u062f\u0627\u0631\u0627\u06cc \u0627\u0645\u062a\u06cc\u0627\u0632\u0627\u062a \u0645\u062e\u062a\u0644\u0641 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0647\u0633\u062a\u06cc\u062f. \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a API \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u0627\u0646 \u0648 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0639\u0627\u062f\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0642\u0628\u0644 \u0627\u0632 \u0622\u0646 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0633\u062a\u06cc\u062f React Hooks \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u0634\u0631\u0648\u0637 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f <code>use<\/code> \u0627\u06cc\u0646\u062c\u0627 \u0642\u0627\u0644\u0628 \u0631\u0627 \u0645\u06cc \u0634\u06a9\u0646\u062f<\/p>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06a9\u0627\u0631\u06cc \u0645\u0627\u0646\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight tsx\"><code><span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">isAdmin<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"nx\">getAllUsers<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"nx\">getUsersInMyAccount<\/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>\u0644\u0637\u0641\u0627\u064b \u0627\u06af\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0646\u0645\u0648\u0646\u0647\u200c\u0647\u0627\u06cc \u0628\u0647\u062a\u0631\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0631\u0642\u062f\u0631\u062a \u062c\u062f\u06cc\u062f \u06a9\u0647 \u0642\u0627\u062f\u0631 \u0628\u0647 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u0634\u0631\u0648\u0637 \u0642\u0644\u0627\u0628 \u0627\u0633\u062a\u060c \u062f\u0631 \u0632\u06cc\u0631 \u0646\u0638\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n<p>React \u0645\u0637\u0645\u0626\u0646 \u0627\u0633\u062a \u06a9\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u0633\u0631\u0648\u0631\u0647\u0627 \u0648 \u06a9\u062f\u0647\u0627\u06cc \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0631\u0627 \u0628\u0627 \u062a\u0645\u0631\u06a9\u0632 \u0628\u0631 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f <code>SSR<\/code> \u0648 \u06a9\u0627\u0631 \u0628\u0627 \u0641\u0631\u0645 \u0647\u0627\u060c \u0645\u0646 \u0647\u0645\u0647 \u0622\u0646 \u0631\u0627 \u062f\u0648\u0633\u062a \u062f\u0627\u0631\u0645.<\/p>\n<p>\u0627\u06af\u0631 \u062a\u0627 \u0627\u06cc\u0646\u062c\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f \u0645\u0646 \u0628\u0633\u06cc\u0627\u0631 \u062a\u062d\u062a \u062a\u0623\u062b\u06cc\u0631 \u0642\u0631\u0627\u0631 \u0645\u06cc \u06af\u06cc\u0631\u0645! \u0641\u06a9\u0631 \u0646\u0645\u06cc\u200c\u06a9\u0631\u062f\u0645 \u0627\u06cc\u0646\u0642\u062f\u0631 \u062a\u0648\u0636\u06cc\u062d \u0628\u062f\u0647\u0645\u060c \u0627\u0645\u0627 \u0641\u06a9\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0645 \u0645\u0647\u0645 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0628\u06cc\u0646\u06cc\u0645 \u0627\u06cc\u0646 \u0642\u0644\u0627\u0628 \u06a9\u062c\u0627\/\u0686\u06af\u0648\u0646\u0647 \u0645\u0641\u06cc\u062f \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/p>\n<p>\u0627\u0632 \u0647\u0645\u0647 \u0634\u0645\u0627 \u0645\u062a\u0634\u06a9\u0631\u0645 \u0648 \u0627\u06af\u0631 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0632 \u0645\u0646 \u062d\u0645\u0627\u06cc\u062a \u06a9\u0646\u06cc\u062f\u060c \u0644\u0637\u0641\u0627\u064b \u0628\u0647 \u06a9\u0627\u0646\u0627\u0644 YouTube \u0645\u0646 \u0646\u06af\u0627\u0647\u06cc \u0628\u06cc\u0646\u062f\u0627\u0632\u06cc\u062f\u060c \u0632\u06cc\u0631\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u0645 \u0628\u0647 \u0647\u0645\u0647 \u0686\u06cc\u0632 React \u0648 Web Dev \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc \u0628\u06cc\u0634\u062a\u0631 \u0628\u067e\u0631\u062f\u0627\u0632\u0645!<\/p>\n<\/p><\/div>\n<p>        <\/code><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0627\u0631\u0632\u0634 \u06cc\u06a9 Promise \u06cc\u0627 \u06cc\u06a9 Context \u0631\u0627 \u062f\u0631 \u062f\u0627\u062e\u0644 \u06cc\u06a9 \u062c\u0632\u0621 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f const value = use(resource) \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u06a9\u0648\u062a\u0627\u0647 \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0645\u062a\u0646 \u06cc\u0627 \u0648\u0639\u062f\u0647 \u0645\u0642\u0627\u062f\u06cc\u0631\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u06cc\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645: import { use } from &#8220;react&#8221;; function MessageComponent ({ messagePromise &hellip;<\/p>\n","protected":false},"author":2,"featured_media":86224,"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-86223","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\/86223","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=86223"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/86223\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/86224"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=86223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=86223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=86223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}