{"id":436,"date":"2026-08-01T00:36:54","date_gmt":"2026-07-31T21:06:54","guid":{"rendered":"https:\/\/hmoazzen.ir\/blog\/?p=436"},"modified":"2026-08-01T00:36:54","modified_gmt":"2026-07-31T21:06:54","slug":"%d8%a2%d9%85%d9%88%d8%b2%d8%b4-nextjs-15-react-19-app-router","status":"publish","type":"post","link":"https:\/\/hmoazzen.ir\/blog\/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-nextjs-15-react-19-app-router\/","title":{"rendered":"\u0622\u0645\u0648\u0632\u0634 Next.js \u06f1\u06f5 \u0648 React \u06f1\u06f9: \u062a\u062d\u0648\u0644 \u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f"},"content":{"rendered":"<p>\u0628\u0627 \u0627\u0646\u062a\u0634\u0627\u0631 Next.js 15 \u0648 React 19\u060c \u062f\u0646\u06cc\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0634\u0627\u0647\u062f \u062a\u062d\u0648\u0644\u0627\u062a \u0686\u0634\u0645\u06af\u06cc\u0631\u06cc \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0646\u0633\u062e\u0647\u200c\u0647\u0627 \u0628\u0627 \u0645\u0639\u0631\u0641\u06cc React Compiler\u060c App Router \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0648 \u0628\u0647\u0628\u0648\u062f\u0647\u0627\u06cc \u0686\u0634\u0645\u06af\u06cc\u0631 \u062f\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f\u060c \u062a\u062c\u0631\u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0631\u0627 \u0645\u062a\u062d\u0648\u0644 \u0633\u0627\u062e\u062a\u0647\u200c\u0627\u0646\u062f. Next.js 15 \u0648 React 19 \u0628\u0627 \u06a9\u0627\u0647\u0634 \u062d\u062c\u0645 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0633\u0645\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a\u060c \u06a9\u0634\u06cc\u0646\u06af \u0647\u0648\u0634\u0645\u0646\u062f \u0648 API\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f\u060c \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u062a\u0627 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0648\u0628 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0648 \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631\u062a\u0631\u06cc \u0628\u0633\u0627\u0632\u0646\u062f \u0648 \u0633\u0631\u0639\u062a \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0686\u0634\u0645\u06af\u06cc\u0631\u06cc \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u062c\u0627\u0645\u0639\u060c \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0639\u0645\u06cc\u0642 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc Next.js 15\u060c React 19\u060c React Compiler \u0648 App Router \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u06cc\u0645 \u0648 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u0686\u06af\u0648\u0646\u0647 \u0627\u06cc\u0646 \u0641\u0646\u0627\u0648\u0631\u06cc\u200c\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0628\u0647\u0628\u0648\u062f \u0633\u0631\u0639\u062a \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0648 \u0627\u0631\u062a\u0642\u0627\u06cc \u06a9\u06cc\u0641\u06cc\u062a \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0648\u0628 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u06a9\u0646\u0646\u062f. \u0647\u062f\u0641 \u0645\u0627 \u0627\u0631\u0627\u0626\u0647 \u06cc\u06a9 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0641\u0627\u0631\u0633\u06cc\u200c\u0632\u0628\u0627\u0646 \u0627\u0633\u062a \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u0627\u0632 \u067e\u062a\u0627\u0646\u0633\u06cc\u0644 \u06a9\u0627\u0645\u0644 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0647\u0631\u0647\u200c\u0645\u0646\u062f \u0634\u0648\u0646\u062f.<\/p>\n<h2>Next.js 15: \u0627\u0646\u0642\u0644\u0627\u0628\u06cc \u062f\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u062a\u062c\u0631\u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647<\/h2>\n<figure class=\"hgai-inline-image\"><img decoding=\"async\" src=\"https:\/\/hmoazzen.ir\/blog\/wp-content\/uploads\/2026\/08\/d8a2d985d988d8b2d8b4-next-js-15-d988-react-19-d8aad8add988d984-d8afd8b1-d8aad988d8b3d8b9d987-d981d8b1d8a7d986d8aad8a7d986d8af-1-1yXifW.png\" alt=\"\u0646\u0645\u0627\u062f \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631 \u062a\u0648\u0633\u0637 React Compiler\" loading=\"lazy\"><figcaption>\u0646\u0645\u0627\u062f \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631 \u062a\u0648\u0633\u0637 React Compiler<\/figcaption><\/figure>\n<p>Next.js 15 \u06a9\u0647 \u062f\u0631 \u062a\u0627\u0631\u06cc\u062e \u06f2\u06f1 \u0627\u06a9\u062a\u0628\u0631 \u06f2\u06f0\u06f2\u06f4 \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0645\u0646\u062a\u0634\u0631 \u0634\u062f\u060c \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u0639\u0637\u0641 \u0645\u0647\u0645 \u062f\u0631 \u062a\u06a9\u0627\u0645\u0644 \u0627\u06cc\u0646 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0645\u062d\u0633\u0648\u0628 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u06cc\u0646 \u0646\u0633\u062e\u0647\u060c \u0645\u062c\u0645\u0648\u0639\u0647\u200c\u0627\u06cc \u0627\u0632 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0648 \u0628\u0647\u0628\u0648\u062f\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0627\u0631\u0645\u063a\u0627\u0646 \u0622\u0648\u0631\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u062a\u062c\u0631\u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0627\u0631\u062a\u0642\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<h3>\u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc Next.js 15<\/h3>\n<ul>\n<li><strong>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u06a9\u0627\u0645\u0644 \u0627\u0632 React 19:<\/strong> Next.js 15 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u06a9\u0627\u0645\u0644 \u0627\u0632 React 19 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u06a9\u0647 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062c\u062f\u06cc\u062f\u062a\u0631\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc React \u0631\u0627 \u062f\u0631 App Router \u0645\u06cc\u200c\u062f\u0647\u062f. \u0627\u06cc\u0646 \u06cc\u06a9\u067e\u0627\u0631\u0686\u06af\u06cc\u060c \u0647\u0645\u200c\u0627\u0641\u0632\u0627\u06cc\u06cc \u0628\u06cc\u200c\u0646\u0638\u06cc\u0631\u06cc \u0628\u06cc\u0646 \u062f\u0648 \u0641\u0646\u0627\u0648\u0631\u06cc \u067e\u06cc\u0634\u0631\u0648 \u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u0648\u0628 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li><strong>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 React Compiler (\u062a\u062c\u0631\u0628\u06cc\/\u067e\u0627\u06cc\u062f\u0627\u0631):<\/strong> \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 React Compiler \u06a9\u0647 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u062a\u062c\u0631\u0628\u06cc \u0628\u0648\u062f \u0648 \u062f\u0631 Next.js 16 \u067e\u0627\u06cc\u062f\u0627\u0631 \u0634\u062f\u060c \u062f\u0631 Next.js 15 \u0646\u06cc\u0632 \u0628\u0627 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062e\u0627\u0635\u06cc \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644\u0631 \u0628\u0627 \u062e\u0648\u062f\u06a9\u0627\u0631\u0633\u0627\u0632\u06cc memoization\u060c \u0646\u06cc\u0627\u0632 \u0628\u0647 <code>useMemo<\/code> \u0648 <code>useCallback<\/code> \u062f\u0633\u062a\u06cc \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc\u200c\u0647\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/li>\n<li><strong>Turbopack Dev (\u067e\u0627\u06cc\u062f\u0627\u0631):<\/strong> Turbopack \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0628\u0627\u0646\u062f\u0644\u0631 \u062c\u062f\u06cc\u062f \u0648 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 Next.js\u060c \u0633\u0631\u0639\u062a \u062a\u0648\u0633\u0639\u0647 \u0631\u0627 \u0628\u0647 \u0634\u062f\u062a \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0634\u0627\u0647\u062f \u0628\u0647\u0628\u0648\u062f\u0647\u0627\u06cc\u06cc \u062a\u0627 \u06f7\u06f6.\u06f7\u066a \u062f\u0631 \u0632\u0645\u0627\u0646 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0633\u0631\u0648\u0631 \u0645\u062d\u0644\u06cc\u060c \u06f9\u06f6.\u06f3\u066a \u062f\u0631 Fast Refresh \u0648 \u06f4\u06f5.\u06f8\u066a \u062f\u0631 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0627\u0648\u0644\u06cc\u0647 \u0645\u0633\u06cc\u0631\u0647\u0627 \u0647\u0633\u062a\u06cc\u0645. \u0627\u06cc\u0646 \u0628\u0647 \u0645\u0639\u0646\u0627\u06cc \u0628\u0627\u0632\u062e\u0648\u0631\u062f \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0648 \u0686\u0631\u062e\u0647\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u06a9\u0648\u062a\u0627\u0647\u200c\u062a\u0631 \u0627\u0633\u062a.<\/li>\n<li><strong>\u062a\u063a\u06cc\u06cc\u0631 \u0645\u0639\u0646\u0627\u06cc\u06cc \u06a9\u0634\u06cc\u0646\u06af (Caching Semantics):<\/strong> \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0647\u0645\u200c\u062a\u0631\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u060c \u0639\u062f\u0645 \u06a9\u0634 \u0634\u062f\u0646 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc <code>fetch<\/code>\u060c <code>GET<\/code> Route Handler\u0647\u0627 \u0648 \u067e\u06cc\u0645\u0627\u06cc\u0634\u200c\u0647\u0627\u06cc \u06a9\u0644\u0627\u06cc\u0646\u062a \u0627\u0633\u062a. \u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631\u060c \u06a9\u0646\u062a\u0631\u0644 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0628\u0631 \u0631\u0648\u06cc \u06a9\u0634\u06cc\u0646\u06af \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0642\u062f\u06cc\u0645\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u06a9\u0634\u06cc\u0646\u06af \u0628\u0627\u06cc\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u0635\u0631\u06cc\u062d \u0622\u0646 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0631\u062f\u060c \u06a9\u0647 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f &#8220;opt-in&#8221; \u06a9\u0646\u062a\u0631\u0644 \u062f\u0642\u06cc\u0642\u200c\u062a\u0631\u06cc \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li><strong>\u062a\u0648\u0644\u06cc\u062f \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9 (Static Generation) \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0628\u0631\u0627\u06cc App Router:<\/strong> \u0628\u0627 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0648\u0644\u06cc\u062f \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9\u060c \u0632\u0645\u0627\u0646 \u0633\u0627\u062e\u062a \u067e\u0631\u0648\u0698\u0647 \u06a9\u0627\u0647\u0634 \u06cc\u0627\u0641\u062a\u0647 \u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u0632 \u0631\u0646\u062f\u0631 \u0627\u0648\u0644\u06cc\u0647 \u0648 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u06a9\u0634 <code>fetch<\/code> \u0628\u06cc\u0646 worker\u0647\u0627\u060c \u0633\u0631\u0639\u062a \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc\u200c\u06cc\u0627\u0628\u062f. \u0627\u06cc\u0646 \u0627\u0645\u0631 \u0628\u0647 \u062e\u0635\u0648\u0635 \u0628\u0631\u0627\u06cc \u0633\u0627\u06cc\u062a\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u0628\u0627 \u0645\u062d\u062a\u0648\u0627\u06cc \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9 \u0632\u06cc\u0627\u062f \u0645\u0641\u06cc\u062f \u0627\u0633\u062a.<\/li>\n<li><strong>API \u062c\u062f\u06cc\u062f <code>instrumentation.js<\/code> (\u067e\u0627\u06cc\u062f\u0627\u0631):<\/strong> \u0627\u06cc\u0646 API \u0627\u0645\u06a9\u0627\u0646 \u0645\u0634\u0627\u0647\u062f\u0647 \u0686\u0631\u062e\u0647 \u0639\u0645\u0631 \u0633\u0631\u0648\u0631 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u0631\u0641\u062a\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u0628\u0647\u062a\u0631 \u062f\u0631\u06a9 \u0648 \u0627\u0634\u06a9\u0627\u0644\u200c\u0632\u062f\u0627\u06cc\u06cc \u06a9\u0646\u0646\u062f.<\/li>\n<li><strong>\u0641\u0631\u0645\u200c\u0647\u0627\u06cc \u0628\u0647\u0628\u0648\u062f\u06cc\u0627\u0641\u062a\u0647 (<code>next\/form<\/code>):<\/strong> \u0628\u0647\u0628\u0648\u062f \u0641\u0631\u0645\u200c\u0647\u0627\u06cc HTML \u0628\u0627 \u0646\u0627\u0648\u0628\u0631\u06cc \u0633\u0645\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a\u060c \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0631\u0627 \u062f\u0631 \u0627\u0631\u0633\u0627\u0644 \u0648 \u067e\u0631\u062f\u0627\u0632\u0634 \u0641\u0631\u0645\u200c\u0647\u0627 \u0631\u0648\u0627\u0646\u200c\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0627\u0645\u06a9\u0627\u0646 \u0633\u0627\u062e\u062a \u0641\u0631\u0645\u200c\u0647\u0627\u06cc \u062a\u0639\u0627\u0645\u0644\u06cc\u200c\u062a\u0631 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u0622\u0648\u0631\u062f.<\/li>\n<li><strong>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 TypeScript \u0628\u0631\u0627\u06cc <code>next.config.ts<\/code> \u0648 <code>next.config.js<\/code>:<\/strong> \u0627\u0645\u06a9\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 TypeScript \u062f\u0631 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Next.js\u060c \u062a\u062c\u0631\u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0631\u0627 \u0628\u0627 \u0627\u0631\u0627\u0626\u0647 Type Checking \u0648 \u062a\u06a9\u0645\u06cc\u0644 \u062e\u0648\u062f\u06a9\u0627\u0631 (autocompletion) \u0628\u0647\u0628\u0648\u062f \u0645\u06cc\u200c\u0628\u062e\u0634\u062f \u0648 \u062e\u0637\u0627\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/li>\n<li><strong>Partial Prerendering (PPR) (\u067e\u0627\u06cc\u062f\u0627\u0631):<\/strong> \u0627\u06cc\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0645\u062d\u062a\u0648\u0627\u06cc \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9 \u0648 \u067e\u0648\u06cc\u0627 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0635\u0641\u062d\u0647 \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0646\u06cc\u062f. \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0645\u062d\u062a\u0648\u0627\u06cc \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9 \u0631\u0627 \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0648 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u067e\u0648\u06cc\u0627 \u0628\u0647 \u062a\u062f\u0631\u06cc\u062c \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u06a9\u0647 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u0627\u0645\u062a\u06cc\u0627\u0632\u0627\u062a Lighthouse \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0686\u0634\u0645\u06af\u06cc\u0631\u06cc \u0628\u0647\u0628\u0648\u062f \u0645\u06cc\u200c\u0628\u062e\u0634\u062f.<\/li>\n<li><strong>\u0628\u0647\u0628\u0648\u062f \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a Image \u0648 Metadata API:<\/strong> \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a <code>Image<\/code> \u0628\u0647\u0628\u0648\u062f \u06cc\u0627\u0641\u062a\u0647 \u0648 Metadata API \u062c\u062f\u06cc\u062f\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062a\u0627 \u062a\u06af\u200c\u0647\u0627 \u0648 SEO \u0631\u0627 \u0633\u0627\u0632\u0645\u0627\u0646\u200c\u06cc\u0627\u0641\u062a\u0647\u200c\u062a\u0631 \u0648 \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0627\u0645\u0631 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u0648\u062a\u0648\u0631\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648 \u0631\u0627 \u0633\u0627\u062f\u0647\u200c\u062a\u0631 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f.<\/li>\n<li><strong>API\u0647\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0646\u0627\u0647\u0645\u06af\u0627\u0645 (Async Request APIs):<\/strong> \u0627\u06cc\u0646 API\u0647\u0627 \u06af\u0627\u0645\u06cc \u062f\u0631 \u062c\u0647\u062a \u0633\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u062f\u0644 \u0631\u0646\u062f\u0631\u06cc\u0646\u06af \u0648 \u06a9\u0634\u06cc\u0646\u06af \u0647\u0633\u062a\u0646\u062f\u060c \u0627\u0645\u0627 \u0634\u0627\u0645\u0644 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0634\u06a9\u0633\u062a\u200c\u062f\u0647\u0646\u062f\u0647 (breaking changes) \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062a\u0648\u062c\u0647 \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u0645\u0647\u0627\u062c\u0631\u062a \u062f\u0627\u0631\u0646\u062f.<\/li>\n<li><strong>CLI <code>next\/codemod@canary<\/code>:<\/strong> \u0627\u0628\u0632\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u0627\u0631\u062a\u0642\u0627\u06cc \u0622\u0633\u0627\u0646 \u0628\u0647 \u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc Next.js \u0648 React\u060c \u06a9\u0647 \u0641\u0631\u0622\u06cc\u0646\u062f \u0645\u0647\u0627\u062c\u0631\u062a \u0631\u0627 \u062a\u0627 \u062d\u062f \u0627\u0645\u06a9\u0627\u0646 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0648 \u0628\u06cc\u200c\u062f\u0631\u062f\u0633\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<\/ul>\n<h2>React 19: \u06af\u0627\u0645\u06cc \u0628\u0632\u0631\u06af \u0628\u0647 \u0633\u0648\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0647\u062a\u0631<\/h2>\n<figure class=\"hgai-inline-image\"><img decoding=\"async\" src=\"https:\/\/hmoazzen.ir\/blog\/wp-content\/uploads\/2026\/08\/d8a2d985d988d8b2d8b4-next-js-15-d988-react-19-d8aad8add988d984-d8afd8b1-d8aad988d8b3d8b9d987-d981d8b1d8a7d986d8aad8a7d986d8af-2-TlVlBm.png\" alt=\"\u0646\u0642\u0634\u0647 \u0645\u0639\u0645\u0627\u0631\u06cc App Router \u062f\u0631 Next.js\" loading=\"lazy\"><figcaption>\u0646\u0642\u0634\u0647 \u0645\u0639\u0645\u0627\u0631\u06cc App Router \u062f\u0631 Next.js<\/figcaption><\/figure>\n<p>React 19 \u06a9\u0647 \u062f\u0631 \u06f5 \u062f\u0633\u0627\u0645\u0628\u0631 \u06f2\u06f0\u06f2\u06f4 \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0645\u0646\u062a\u0634\u0631 \u0634\u062f\u060c \u0645\u062c\u0645\u0648\u0639\u0647\u200c\u0627\u06cc \u0627\u0632 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0647\u0628\u0648\u062f \u0639\u0645\u0644\u06a9\u0631\u062f\u060c \u0627\u062f\u063a\u0627\u0645 \u0628\u0627 \u0633\u0631\u0648\u0631 \u0648 \u062a\u062c\u0631\u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0645\u0639\u0631\u0641\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0646\u0633\u062e\u0647\u060c \u062a\u0645\u0631\u06a9\u0632 \u0648\u06cc\u0698\u0647\u200c\u0627\u06cc \u0628\u0631 \u0633\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c \u0648 \u0627\u0641\u0632\u0627\u06cc\u0634 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u062f\u0627\u0631\u062f.<\/p>\n<h3>\u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc React 19<\/h3>\n<ul>\n<li><strong>Actions \u0648 \u0628\u0647\u0628\u0648\u062f \u0641\u0631\u0645\u200c\u0647\u0627:<\/strong> \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u062f\u0627\u062e\u0644\u06cc \u0627\u0632 async form actions\u060c \u062a\u0639\u0627\u0645\u0644\u0627\u062a \u0633\u0631\u0648\u0631 \u0631\u0627 \u0631\u0648\u0627\u0646\u200c\u062a\u0631 \u06a9\u0631\u062f\u0647 \u0648 \u06a9\u062f boilerplate \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0647\u0648\u06a9\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f\u06cc \u0645\u0627\u0646\u0646\u062f <code>useOptimistic<\/code> (\u0628\u0631\u0627\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0641\u0648\u0631\u06cc UI \u0628\u0627 \u0642\u0627\u0628\u0644\u06cc\u062a \u0628\u0627\u0632\u06af\u0634\u062a \u062e\u0648\u062f\u06a9\u0627\u0631)\u060c <code>useFormStatus<\/code> (\u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0648\u0636\u0639\u06cc\u062a \u0641\u0631\u0645 \u0648\u0627\u0644\u062f \u062f\u0631 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627\u06cc \u0641\u0631\u0632\u0646\u062f) \u0648 <code>useActionState<\/code> (\u06a9\u0647 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 <code>useFormState<\/code> \u0634\u062f\u0647 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u062f\u0631 Actions \u0631\u0627 \u0633\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f) \u0645\u0639\u0631\u0641\u06cc \u0634\u062f\u0647\u200c\u0627\u0646\u062f. \u0627\u06cc\u0646 \u0647\u0648\u06a9\u200c\u0647\u0627 \u0628\u0647 \u0633\u0627\u062e\u062a \u0641\u0631\u0645\u200c\u0647\u0627\u06cc \u062a\u0639\u0627\u0645\u0644\u06cc \u0648 \u067e\u0627\u0633\u062e\u06af\u0648 \u06a9\u0645\u06a9 \u0634\u0627\u06cc\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/li>\n<li><strong>React Compiler (\u067e\u0627\u06cc\u062f\u0627\u0631):<\/strong> \u0627\u06cc\u0646 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644\u0631 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0646\u06cc\u0627\u0632 \u0628\u0647 memoization \u062f\u0633\u062a\u06cc \u0631\u0627 \u0627\u0632 \u0628\u06cc\u0646 \u0645\u06cc\u200c\u0628\u0631\u062f. \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0628\u0647 \u062a\u0646\u0647\u0627\u06cc\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062d\u062c\u0645 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0627\u0632 \u06a9\u062f \u062a\u06a9\u0631\u0627\u0631\u06cc \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0631\u062f\u0647 \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u062f.<\/li>\n<li><strong>Server Components \u0648 Hydration \u0628\u0647\u0628\u0648\u062f\u06cc\u0627\u0641\u062a\u0647:<\/strong> \u0628\u0647\u0628\u0648\u062f\u0647\u0627\u06cc\u06cc \u062f\u0631 \u0627\u0633\u062a\u0631\u06cc\u0645\u06cc\u0646\u06af\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627 \u0648 \u0631\u0646\u062f\u0631\u06cc\u0646\u06af \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0641\u0648\u0644\u200c\u0627\u0633\u062a\u06a9 \u0645\u062f\u0631\u0646. \u0627\u06cc\u0646 \u0628\u0647\u0628\u0648\u062f\u0647\u0627\u060c \u062a\u062c\u0631\u0628\u0647 \u0627\u0648\u0644\u06cc\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0635\u0641\u062d\u0647 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0647\u06cc\u0646\u0647\u200c\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li><strong>\u0647\u0648\u06a9 \u062c\u062f\u06cc\u062f <code>use()<\/code>:<\/strong> \u0627\u06cc\u0646 \u0647\u0648\u06a9 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0645\u0646\u0627\u0628\u0639 (\u0645\u0627\u0646\u0646\u062f Promise\u0647\u0627 \u0648 Context) \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0631 \u062d\u06cc\u0646 \u0631\u0646\u062f\u0631 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0631\u0627\u06cc \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u0628\u0647 \u0635\u0648\u0631\u062a \u0647\u0645\u0632\u0645\u0627\u0646 \u0627\u0633\u062a.<\/li>\n<li><strong><code>ref<\/code> \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 prop \u0645\u0639\u0645\u0648\u0644\u06cc:<\/strong> \u0646\u06cc\u0627\u0632 \u0628\u0647 <code>forwardRef<\/code> \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f (\u0627\u06af\u0631\u0686\u0647 <code>forwardRef<\/code> \u0647\u0645\u0686\u0646\u0627\u0646 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062f\u0631 \u0622\u06cc\u0646\u062f\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0645\u0646\u0633\u0648\u062e \u0634\u0648\u062f). \u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631\u060c API <code>ref<\/code> \u0631\u0627 \u0633\u0627\u062f\u0647\u200c\u062a\u0631 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0631\u0627 \u0637\u0628\u06cc\u0639\u06cc\u200c\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li><strong>API\u0647\u0627\u06cc \u067e\u06cc\u0634\u200c\u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u0646\u0627\u0628\u0639:<\/strong> API\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f\u06cc \u0645\u0627\u0646\u0646\u062f <code>prefetchDNS<\/code>, <code>preconnect<\/code>, <code>preload<\/code> \u0648 <code>preloadModule<\/code> \u0628\u0631\u0627\u06cc \u0628\u0647\u0628\u0648\u062f \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0635\u0641\u062d\u0647 \u0648 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc. \u0627\u06cc\u0646 API\u0647\u0627 \u0628\u0647 \u0645\u0631\u0648\u0631\u06af\u0631 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u062a\u0627 \u0645\u0646\u0627\u0628\u0639 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0631\u0627 \u0632\u0648\u062f\u062a\u0631 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0648 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u062f.<\/li>\n<li><strong>\u0628\u0647\u0628\u0648\u062f\u0647\u0627\u06cc Concurrent Rendering \u0648 Automatic Batching:<\/strong> React \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0686\u0646\u062f\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u062f \u0648 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc \u0648\u0636\u0639\u06cc\u062a \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0686\u0631\u062e\u0647 \u0631\u0646\u062f\u0631 \u06af\u0631\u0648\u0647\u200c\u0628\u0646\u062f\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0627\u0645\u0631 \u0628\u0647 \u0648\u0627\u06a9\u0646\u0634\u200c\u06af\u0631\u0627\u06cc\u06cc \u0628\u06cc\u0634\u062a\u0631 UI \u062f\u0631 \u0628\u0631\u0627\u0628\u0631 \u062a\u0639\u0627\u0645\u0644\u0627\u062a \u06a9\u0627\u0631\u0628\u0631 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li><strong>TypeScript \u0628\u0647\u0628\u0648\u062f\u06cc\u0627\u0641\u062a\u0647:<\/strong> \u0628\u0647\u0628\u0648\u062f\u0647\u0627\u06cc\u06cc \u062f\u0631 Type Inference\u060c JSX Types \u0648 Ref Types. \u0627\u06cc\u0646 \u0628\u0647\u0628\u0648\u062f\u0647\u0627\u060c \u062a\u062c\u0631\u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u0628\u0627 TypeScript \u0631\u0627 \u062f\u0631 React 19 \u0631\u0648\u0627\u0646\u200c\u062a\u0631 \u0648 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<\/ul>\n<h2>React Compiler: \u067e\u0627\u06cc\u0627\u0646 Memoization \u062f\u0633\u062a\u06cc \u0628\u0631\u0627\u06cc \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f<\/h2>\n<p>React Compiler \u06a9\u0647 \u062f\u0631 Next.js 15 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u062f\u0631 Next.js 16 \u067e\u0627\u06cc\u062f\u0627\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0627\u0628\u0632\u0627\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0633\u0637 \u062a\u06cc\u0645 React \u062f\u0631 Meta \u062a\u0648\u0633\u0639\u0647 \u06cc\u0627\u0641\u062a\u0647 \u0648 \u0647\u062f\u0641 \u0622\u0646 \u062d\u0630\u0641 \u0646\u06cc\u0627\u0632 \u0628\u0647 memoization \u062f\u0633\u062a\u06cc \u0628\u0627 <code>useMemo<\/code> \u0648 <code>useCallback<\/code> \u0627\u0633\u062a. \u0627\u06cc\u0646 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644\u0631\u060c \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc\u200c\u0647\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0628\u0631 \u0645\u0646\u0637\u0642 \u0628\u0631\u0646\u0627\u0645\u0647 \u062a\u0645\u0631\u06a9\u0632 \u06a9\u0646\u0646\u062f\u060c \u0646\u0647 \u0628\u0631 \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc\u200c\u0647\u0627\u06cc \u0631\u06cc\u0632.<\/p>\n<h3>\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 React Compiler<\/h3>\n<p>\u0627\u06cc\u0646 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644\u0631 \u06cc\u06a9 transform \u062f\u0631 \u0632\u0645\u0627\u0646 \u0633\u0627\u062e\u062a (build-time) \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 Babel \u0627\u0633\u062a \u06a9\u0647 \u062a\u062d\u0644\u06cc\u0644 \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9 \u0631\u0648\u06cc \u062a\u0648\u0627\u0628\u0639 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 \u0648 \u0647\u0648\u06a9\u200c\u0647\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0633\u067e\u0633 \u0645\u0639\u0627\u062f\u0644\u200c\u0647\u0627\u06cc memoized \u0631\u0627 \u0628\u0627 \u0628\u0633\u062a\u0647\u200c\u0628\u0646\u062f\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631 \u0648 callbacks \u062f\u0631 \u0627\u0633\u0644\u0627\u062a\u200c\u0647\u0627\u06cc memo \u0645\u062f\u06cc\u0631\u06cc\u062a \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644\u0631 \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u062f \u0633\u0627\u062f\u0647\u200c\u062a\u0631\u060c \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0648 \u06a9\u0645\u062a\u0631 \u0645\u0633\u062a\u0639\u062f \u062e\u0637\u0627 \u0628\u0627\u0634\u062f. \u0628\u0647 \u0639\u0628\u0627\u0631\u062a \u062f\u06cc\u06af\u0631\u060c \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644\u0631 \u0628\u0647 \u0637\u0648\u0631 \u0647\u0648\u0634\u0645\u0646\u062f \u062a\u0634\u062e\u06cc\u0635 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u06a9\u062f\u0627\u0645 \u0628\u062e\u0634 \u0627\u0632 \u06a9\u062f \u0646\u06cc\u0627\u0632 \u0628\u0647 memoization \u062f\u0627\u0631\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<h3>\u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc React Compiler \u062f\u0631 Next.js<\/h3>\n<p>\u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc React Compiler \u062f\u0631 Next.js\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f <code>reactCompiler: true<\/code> \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 <code>next.config.ts<\/code> \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u06cc\u06a9 \u062a\u063a\u06cc\u06cc\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0627\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0645\u0632\u0627\u06cc\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f:<\/p>\n<pre><code class=\"language-typescript\">\n\/\/ next.config.ts\nimport type { NextConfig } from 'next';\n\nconst nextConfig: NextConfig = {\n  experimental: {\n    reactCompiler: true, \/\/ \u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc React Compiler\n  },\n  \/\/ \u0633\u0627\u06cc\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc\u200c\u0647\u0627\u06cc Next.js\n};\n\nexport default nextConfig;\n<\/code><\/pre>\n<p>\u0628\u0627 \u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0627\u06cc\u0646 \u06af\u0632\u06cc\u0646\u0647\u060c Next.js \u0627\u0632 React Compiler \u0628\u0631\u0627\u06cc \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627\u06cc \u0634\u0645\u0627 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0633\u0627\u062e\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.<\/p>\n<h2>App Router \u062f\u0631 Next.js 15: \u0645\u0639\u0645\u0627\u0631\u06cc \u0645\u062f\u0631\u0646 \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc React<\/h2>\n<p>App Router \u06a9\u0647 \u062f\u0631 Next.js 13 \u0645\u0639\u0631\u0641\u06cc \u0634\u062f \u0648 \u062f\u0631 Next.js 15 \u0628\u0647 \u0628\u0644\u0648\u063a \u0631\u0633\u06cc\u062f\u060c \u06cc\u06a9 \u062a\u063a\u06cc\u06cc\u0631 \u067e\u0627\u0631\u0627\u062f\u0627\u06cc\u0645 \u062f\u0631 \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc React \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u062c\u062f\u06cc\u062f \u0628\u0631 \u067e\u0627\u06cc\u0647 React Server Components (RSC) \u0628\u0646\u0627 \u0634\u062f\u0647 \u0648 \u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636\u060c \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 \u062f\u0631 \u0633\u0631\u0648\u0631 \u0631\u0646\u062f\u0631 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0639\u0645\u0627\u0631\u06cc\u060c \u0645\u0632\u0627\u06cc\u0627\u06cc \u0628\u06cc\u200c\u0634\u0645\u0627\u0631\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u062a\u062c\u0631\u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0628\u0647 \u0627\u0631\u0645\u063a\u0627\u0646 \u0645\u06cc\u200c\u0622\u0648\u0631\u062f.<\/p>\n<h3>\u0645\u0632\u0627\u06cc\u0627\u06cc App Router<\/h3>\n<ul>\n<li><strong>\u06a9\u0627\u0647\u0634 \u062d\u062c\u0645 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0633\u0645\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a:<\/strong> \u0628\u0627 \u0631\u0646\u062f\u0631 \u0634\u062f\u0646 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 \u062f\u0631 \u0633\u0631\u0648\u0631\u060c \u062d\u062c\u0645 \u06a9\u062f \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0628\u0647 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0628\u0647 \u062d\u062f\u0627\u0642\u0644 \u0645\u06cc\u200c\u0631\u0633\u062f\u060c \u06a9\u0647 \u0645\u0646\u062c\u0631 \u0628\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0648 \u06a9\u0627\u0647\u0634 \u0632\u0645\u0627\u0646 \u062a\u0639\u0627\u0645\u0644 (TTI) \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n<li><strong>\u0628\u0647\u0628\u0648\u062f SEO:<\/strong> \u0645\u062d\u062a\u0648\u0627\u06cc \u0631\u0646\u062f\u0631 \u0634\u062f\u0647 \u062f\u0631 \u0633\u0631\u0648\u0631 \u0628\u0647 \u0633\u0631\u0639\u062a \u0628\u0631\u0627\u06cc \u062e\u0632\u0646\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u0648\u062a\u0648\u0631\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0627\u0633\u062a\u060c \u06a9\u0647 \u0628\u0647 \u0628\u0647\u0628\u0648\u062f \u0631\u062a\u0628\u0647 \u0633\u0627\u06cc\u062a \u062f\u0631 \u0646\u062a\u0627\u06cc\u062c \u062c\u0633\u062a\u062c\u0648 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li><strong>\u0627\u0633\u062a\u0631\u06cc\u0645\u06cc\u0646\u06af (Streaming) \u0628\u0647\u0628\u0648\u062f\u06cc\u0627\u0641\u062a\u0647:<\/strong> App Router \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062a\u06a9\u0647\u200c\u0647\u0627\u06cc HTML \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062a\u062f\u0631\u06cc\u062c\u06cc \u0627\u0633\u062a\u0631\u06cc\u0645 \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0628\u062f\u0627\u0646 \u0645\u0639\u0646\u0627\u0633\u062a \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0645\u062d\u062a\u0648\u0627\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0631\u0627 \u0632\u0648\u062f\u062a\u0631 \u0628\u0628\u06cc\u0646\u0646\u062f\u060c \u062d\u062a\u06cc \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u062a\u0645\u0627\u0645 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0648\u0627\u06a9\u0634\u06cc \u0634\u0648\u0646\u062f\u060c \u06a9\u0647 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc\u200c\u0628\u062e\u0634\u062f.<\/li>\n<li><strong>\u0647\u0645\u200c\u0645\u06a9\u0627\u0646\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 (Data Colocation):<\/strong> \u0627\u0645\u06a9\u0627\u0646 \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0631 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u0631\u060c \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc API \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0645\u0646\u0637\u0642 \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647 \u0631\u0627 \u0628\u0647 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u0646\u062f \u0646\u0632\u062f\u06cc\u06a9\u200c\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<\/ul>\n<h3>\u0633\u0627\u062e\u062a\u0627\u0631 App Router<\/h3>\n<p>App Router \u0627\u0632 \u0633\u0627\u062e\u062a\u0627\u0631 \u067e\u0648\u0634\u0647\u200c\u0627\u06cc \u062a\u0648 \u062f\u0631 \u062a\u0648 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0645\u0633\u06cc\u0631\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u062e\u0627\u0635\u06cc \u0645\u0627\u0646\u0646\u062f <code>layout.tsx<\/code> (\u0628\u0631\u0627\u06cc UI \u0645\u0634\u062a\u0631\u06a9 \u062f\u0631 \u0686\u0646\u062f\u06cc\u0646 \u0635\u0641\u062d\u0647)\u060c <code>template.tsx<\/code> (\u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 state \u0648 lifecycle \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 \u062f\u0631 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9) \u0648 <code>page.tsx<\/code> (\u0628\u0631\u0627\u06cc \u0645\u062d\u062a\u0648\u0627\u06cc \u0635\u0641\u062d\u0647) \u0646\u0642\u0634 \u06a9\u0644\u06cc\u062f\u06cc \u062f\u0627\u0631\u0646\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u067e\u0648\u0634\u0647\u200c\u0647\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u0645\u0633\u06cc\u0631 (segments) \u0639\u0645\u0644 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0648 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc <code>loading.tsx<\/code>\u060c <code>error.tsx<\/code> \u0648 <code>not-found.tsx<\/code> \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a\u200c\u0647\u0627\u06cc \u062e\u0627\u0635 \u0628\u0647 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u0631\u0648\u0646\u062f.<\/p>\n<h3>\u0646\u0645\u0648\u0646\u0647 \u06a9\u062f \u0633\u0627\u062e\u062a\u0627\u0631 App Router<\/h3>\n<p>\u062f\u0631 \u0627\u062f\u0627\u0645\u0647\u060c \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u0633\u0627\u062f\u0647 \u0627\u0632 \u0633\u0627\u062e\u062a\u0627\u0631 App Router \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0646\u062d\u0648\u0647 \u0633\u0627\u0632\u0645\u0627\u0646\u062f\u0647\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0648 \u062a\u0645\u0627\u06cc\u0632 \u0628\u06cc\u0646 Server Components \u0648 Client Components \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f:<\/p>\n<pre><code class=\"language-typescript\">\n\/\/ app\/layout.tsx (Layout \u0631\u06cc\u0634\u0647 - \u0628\u0631\u0627\u06cc UI \u0645\u0634\u062a\u0631\u06a9 \u062f\u0631 \u06a9\u0644 \u0628\u0631\u0646\u0627\u0645\u0647)\nimport '.\/globals.css';\n\nexport default function RootLayout({ children }: { children: React.ReactNode }) {\n  return (\n    &lt;html lang=&quot;fa&quot; suppressHydrationWarning&gt;\n      &lt;body&gt;\n        &lt;header&gt;\n          &lt;h1&gt;\u0639\u0646\u0648\u0627\u0646 \u0633\u0627\u06cc\u062a \u0645\u0646&lt;\/h1&gt;\n        &lt;\/header&gt;\n        &lt;main&gt;{children}&lt;\/main&gt;\n        &lt;footer&gt;\n          &lt;p&gt;\u06a9\u067e\u06cc\u200c\u0631\u0627\u06cc\u062a \u00a9 2026&lt;\/p&gt;\n        &lt;\/footer&gt;\n      &lt;\/body&gt;\n    &lt;\/html&gt;\n  );\n}\n\n\/\/ app\/page.tsx (\u0635\u0641\u062d\u0647 \u0627\u0635\u0644\u06cc - \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0633\u0631\u0648\u0631 \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636)\nasync function getData() {\n  \/\/ \u06a9\u0634\u06cc\u0646\u06af \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0641\u0639\u0627\u0644 \u0646\u06cc\u0633\u062a\u060c \u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0628\u0627\u06cc\u062f \u0635\u0631\u06cc\u062d\u0627\u064b \u0645\u0634\u062e\u0635 \u0634\u0648\u062f\n  const res = await fetch('https:\/\/api.example.com\/data', { cache: 'force-cache' });\n  if (!res.ok) {\n    \/\/ \u0627\u06cc\u0646 \u062e\u0637\u0627 \u0628\u0647 \u0646\u0632\u062f\u06cc\u06a9\u200c\u062a\u0631\u06cc\u0646 error.tsx \u062f\u0631 App Router \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f\n    throw new Error('Failed to fetch data');\n  }\n  return res.json();\n}\n\nexport default async function HomePage() {\n  const data = await getData();\n  return (\n    &lt;div&gt;\n      &lt;h2&gt;\u0628\u0647 \u0635\u0641\u062d\u0647 \u0627\u0635\u0644\u06cc \u062e\u0648\u0634 \u0622\u0645\u062f\u06cc\u062f&lt;\/h2&gt;\n      &lt;p&gt;\u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0648\u0627\u06a9\u0634\u06cc \u0634\u062f\u0647 \u0627\u0632 \u0633\u0631\u0648\u0631: {data.message}&lt;\/p&gt;\n      {\/* \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 Client Component \u062f\u0631 \u062f\u0627\u062e\u0644 Server Component *\/}\n      &lt;ClientInteractiveComponent \/&gt;\n    &lt;\/div&gt;\n  );\n}\n\n\/\/ components\/ClientInteractiveComponent.tsx (\u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a - \u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u0645\u0644)\n'use client'; \/\/ \u0645\u0634\u062e\u0635 \u06a9\u0631\u062f\u0646 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 Client Component\nimport { useState } from 'react';\n\nexport default function ClientInteractiveComponent() {\n  const [count, setCount] = useState(0);\n  return (\n    &lt;div&gt;\n      &lt;p&gt;\u0634\u0645\u0627\u0631\u0646\u062f\u0647: {count}&lt;\/p&gt;\n      &lt;button onClick={() =&gt; setCount(count + 1)}&gt;\u0627\u0641\u0632\u0627\u06cc\u0634&lt;\/button&gt;\n    &lt;\/div&gt;\n  );\n}\n<\/code><\/pre>\n<h2>\u0628\u0647\u0628\u0648\u062f \u0633\u0631\u0639\u062a \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0628\u0627 Next.js 15 \u0648 React 19<\/h2>\n<p>\u0647\u0645 Next.js 15 \u0648 \u0647\u0645 React 19\u060c \u0628\u0647\u0628\u0648\u062f\u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u062f\u0631 \u0633\u0631\u0639\u062a \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0628\u0647 \u0627\u0631\u0645\u063a\u0627\u0646 \u0622\u0648\u0631\u062f\u0647\u200c\u0627\u0646\u062f \u06a9\u0647 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u062a\u0627 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0648\u0628 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631\u06cc \u0628\u0633\u0627\u0632\u0646\u062f:<\/p>\n<ul>\n<li><strong>Turbopack:<\/strong> \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0628\u0627\u0646\u062f\u0644\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062f\u0631 Next.js 15\u060c \u0633\u0631\u0639\u062a \u062a\u0648\u0633\u0639\u0647 \u0648 \u0633\u0627\u062e\u062a \u0631\u0627 \u0628\u0647 \u0634\u062f\u062a \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0632\u0645\u0627\u0646 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0633\u0631\u0648\u0631 \u0645\u062d\u0644\u06cc \u0648 Fast Refresh \u0628\u0647 \u0637\u0648\u0631 \u0686\u0634\u0645\u06af\u06cc\u0631\u06cc \u0628\u0647\u0628\u0648\u062f \u06cc\u0627\u0641\u062a\u0647 \u0627\u0633\u062a.<\/li>\n<li><strong>Partial Prerendering (PPR):<\/strong> \u0628\u0627 \u062a\u0631\u06a9\u06cc\u0628 \u0645\u062d\u062a\u0648\u0627\u06cc \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9 \u0648 \u067e\u0648\u06cc\u0627\u060c PPR \u062a\u062c\u0631\u0628\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0633\u0631\u06cc\u0639 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f. \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9 \u0631\u0627 \u0645\u06cc\u200c\u0628\u06cc\u0646\u0646\u062f \u0648 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u067e\u0648\u06cc\u0627 \u0628\u0647 \u062a\u062f\u0631\u06cc\u062c \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/li>\n<li><strong>React Server Components (RSC):<\/strong> \u0628\u0627 \u06a9\u0627\u0647\u0634 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0633\u0645\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a \u0648 \u0634\u0631\u0648\u0639 \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u062f\u0631 \u0633\u0631\u0648\u0631\u060c RSC \u0632\u0645\u0627\u0646 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0648 \u0632\u0645\u0627\u0646 \u062a\u0639\u0627\u0645\u0644 (TTI) \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc\u200c\u0628\u062e\u0634\u062f.<\/li>\n<li><strong>\u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u06a9\u0634\u06cc\u0646\u06af \u0628\u0647\u0628\u0648\u062f\u06cc\u0627\u0641\u062a\u0647:<\/strong> Next.js 15 \u0628\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u06a9\u0634\u06cc\u0646\u06af \u0628\u0647 &#8220;uncached by default&#8221; \u0648 \u0627\u0631\u0627\u0626\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0628\u06cc\u0634\u062a\u0631\u060c \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u06a9\u0634\u06cc\u0646\u06af \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u0646\u062f \u0648 \u0627\u0632 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0642\u062f\u06cc\u0645\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u0646\u062f.<\/li>\n<li><strong>\u0628\u0647\u0628\u0648\u062f\u0647\u0627\u06cc \u0627\u0633\u062a\u0631\u06cc\u0645\u06cc\u0646\u06af:<\/strong> \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062a\u06a9\u0647\u200c\u0627\u06cc \u0627\u0633\u062a\u0631\u06cc\u0645 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc \u062a\u062c\u0631\u0628\u0647 \u0633\u0631\u06cc\u0639 \u0627\u0648\u0644\u06cc\u0646 \u0631\u0646\u06af (first-paint UX) \u0639\u0627\u0644\u06cc \u0627\u0633\u062a \u0648 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0627\u06cc\u0646 \u062d\u0633 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u0635\u0641\u062d\u0647 \u0628\u0647 \u0633\u0631\u0639\u062a \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n<li><strong>API\u0647\u0627\u06cc \u067e\u06cc\u0634\u200c\u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u0646\u0627\u0628\u0639 \u062f\u0631 React 19:<\/strong> \u0647\u0648\u06a9\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f\u06cc \u0628\u0631\u0627\u06cc prefetch \u06a9\u0631\u062f\u0646 DNS\u060c preconnect \u0628\u0647 \u0633\u0631\u0648\u0631\u0647\u0627 \u0648 preload \u06a9\u0631\u062f\u0646 \u0645\u0646\u0627\u0628\u0639 (\u0645\u0627\u0646\u0646\u062f \u0627\u0633\u062a\u0627\u06cc\u0644\u200c\u0634\u06cc\u062a\u200c\u0647\u0627\u060c \u0641\u0648\u0646\u062a\u200c\u0647\u0627 \u0648 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u200c\u0647\u0627) \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 API\u0647\u0627 \u0628\u0647 \u0645\u0631\u0648\u0631\u06af\u0631 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u062a\u0627 \u0645\u0646\u0627\u0628\u0639 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0631\u0627 \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc \u0648 \u0632\u0648\u062f\u062a\u0631 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u062f.<\/li>\n<li><strong>\u062d\u062c\u0645 \u0628\u0627\u0646\u062f\u0644 \u06a9\u0645\u062a\u0631:<\/strong> \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc\u200c\u0647\u0627\u06cc Turbopack\u060c \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0628\u0647\u062a\u0631 React 19 \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a tree-shaking \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u200c\u0647\u0627\u06cc \u0628\u0644\u0627\u0627\u0633\u062a\u0641\u0627\u062f\u0647\u060c \u0645\u0646\u062c\u0631 \u0628\u0647 \u0628\u0627\u0646\u062f\u0644\u200c\u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9\u200c\u062a\u0631 \u0648 \u0632\u0645\u0627\u0646 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/li>\n<li><strong>\u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af Web Vitals:<\/strong> Next.js \u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0645\u0639\u06cc\u0627\u0631\u0647\u0627\u06cc Web Vitals \u0631\u0627 \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u06af\u0644\u0648\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0627\u0645\u06a9\u0627\u0646 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0647\u062f\u0641\u0645\u0646\u062f \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u0622\u0648\u0631\u062f.<\/li>\n<\/ul>\n<h2>\u0646\u06a9\u0627\u062a \u06a9\u0644\u06cc\u062f\u06cc \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u0647\u06cc\u0646\u0647 \u0627\u0632 Next.js 15 \u0648 React 19<\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0628\u0647\u0631\u0647\u200c\u0628\u0631\u062f\u0627\u0631\u06cc \u062d\u062f\u0627\u06a9\u062b\u0631\u06cc \u0627\u0632 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f Next.js 15 \u0648 React 19\u060c \u062a\u0648\u062c\u0647 \u0628\u0647 \u0646\u06a9\u0627\u062a \u0632\u06cc\u0631 \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a:<\/p>\n<ul>\n<li><strong>\u067e\u0630\u06cc\u0631\u0634 App Router:<\/strong> App Router \u0645\u0633\u06cc\u0631 \u0622\u06cc\u0646\u062f\u0647 \u062a\u0648\u0633\u0639\u0647 Next.js \u0627\u0633\u062a \u0648 \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u062f\u0631\u06a9 \u0639\u0645\u06cc\u0642 \u0627\u0632 \u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0622\u0646\u060c \u06a9\u0644\u06cc\u062f \u0645\u0648\u0641\u0642\u06cc\u062a \u0627\u0633\u062a.<\/li>\n<li><strong>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 React Server Components:<\/strong> \u062a\u0627 \u062d\u062f \u0627\u0645\u06a9\u0627\u0646 \u0627\u0632 Server Components \u0628\u0631\u0627\u06cc \u0631\u0646\u062f\u0631 \u0645\u062d\u062a\u0648\u0627 \u0648 \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u062d\u062c\u0645 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0633\u0645\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a \u0631\u0627 \u06a9\u0627\u0647\u0634 \u062f\u0627\u062f\u0647 \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0627\u0648\u0644\u06cc\u0647 \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u06cc\u062f.<\/li>\n<li><strong>\u0628\u0647\u0631\u0647\u200c\u0628\u0631\u062f\u0627\u0631\u06cc \u0627\u0632 React Compiler:<\/strong> \u0628\u0627 \u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc React Compiler\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc\u200c\u0647\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u0631\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u0646\u06cc\u0627\u0632 \u0628\u0647 memoization \u062f\u0633\u062a\u06cc \u0631\u0627 \u0627\u0632 \u0628\u06cc\u0646 \u0628\u0628\u0631\u06cc\u062f.<\/li>\n<li><strong>\u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0642\u06cc\u0642 \u06a9\u0634\u06cc\u0646\u06af:<\/strong> \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0631 Next.js 15\u060c \u062f\u0631\u06a9 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0635\u0631\u06cc\u062d \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc\u200c\u0647\u0627\u06cc \u06a9\u0634\u06cc\u0646\u06af \u0628\u0631\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc <code>fetch<\/code> \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a. \u0627\u0632 \u06af\u0632\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc <code>cache: 'force-cache'<\/code> \u06cc\u0627 <code>next: { revalidate: seconds }<\/code> \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li><strong>\u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u062a\u062f\u0631\u06cc\u062c\u06cc:<\/strong> \u062f\u0631 \u0635\u0648\u0631\u062a \u0645\u0647\u0627\u062c\u0631\u062a \u0627\u0632 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u0642\u062f\u06cc\u0645\u06cc\u200c\u062a\u0631\u060c \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u062a\u062f\u0631\u06cc\u062c\u06cc \u0648 \u062a\u0633\u062a \u06a9\u0627\u0645\u0644 \u0647\u0631 \u0645\u0631\u062d\u0644\u0647 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f <code>next\/codemod<\/code> \u0628\u0631\u0627\u06cc \u06a9\u0645\u06a9 \u0628\u0647 \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li><strong>\u062f\u0631\u06a9 \u062a\u0641\u0627\u0648\u062a Server\/Client Components:<\/strong> \u0645\u0631\u0632 \u0628\u06cc\u0646 Server Components \u0648 Client Components \u0631\u0627 \u0628\u0647 \u062e\u0648\u0628\u06cc \u062f\u0631\u06a9 \u06a9\u0646\u06cc\u062f. Server Components \u0628\u0631\u0627\u06cc \u0645\u0646\u0637\u0642 \u0633\u0631\u0648\u0631 \u0648 \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647\u060c \u0648 Client Components \u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u0645\u0644\u0627\u062a \u06a9\u0627\u0631\u0628\u0631 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0647\u0648\u06a9\u200c\u0647\u0627\u06cc React (\u0645\u0627\u0646\u0646\u062f <code>useState<\/code>, <code>useEffect<\/code>) \u0645\u0646\u0627\u0633\u0628 \u0647\u0633\u062a\u0646\u062f.<\/li>\n<\/ul>\n<h2>\u062e\u0637\u0627\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c \u0648 \u0631\u0627\u0647\u200c\u062d\u0644\u200c\u0647\u0627 \u062f\u0631 \u0645\u0647\u0627\u062c\u0631\u062a \u0628\u0647 Next.js 15 \u0648 React 19<\/h2>\n<p>\u0645\u0647\u0627\u062c\u0631\u062a \u0628\u0647 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0648 \u0642\u062f\u0631\u062a\u0645\u0646\u062f Next.js 15 \u0648 React 19 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0686\u0627\u0644\u0634\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0647 \u0628\u0631\u062e\u06cc \u0627\u0632 \u062e\u0637\u0627\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c \u0648 \u0631\u0627\u0647\u200c\u062d\u0644\u200c\u0647\u0627\u06cc \u0622\u0646\u200c\u0647\u0627 \u0627\u0634\u0627\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n<ul>\n<li><strong>\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0634\u06a9\u0633\u062a\u200c\u062f\u0647\u0646\u062f\u0647 \u062f\u0631 React 19:<\/strong> <code>ref<\/code> forwarding \u0633\u062e\u062a\u200c\u06af\u06cc\u0631\u0627\u0646\u0647\u200c\u062a\u0631\u060c \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 \u0632\u0645\u0627\u0646\u200c\u0628\u0646\u062f\u06cc <code>useEffect<\/code>\u060c \u062d\u0630\u0641 <code>PropTypes<\/code>\u060c \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 JSX transform \u0648 \u0646\u0627\u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0628\u0631\u062e\u06cc \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0634\u062e\u0635 \u062b\u0627\u0644\u062b.\n<ul>\n<li><strong>\u0631\u0627\u0647\u200c\u062d\u0644:<\/strong> \u0645\u0637\u0627\u0644\u0639\u0647 \u062f\u0642\u06cc\u0642 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0645\u0647\u0627\u062c\u0631\u062a React 19\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>StrictMode<\/code> \u062f\u0631 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0627\u06cc \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u0645\u0646\u0633\u0648\u062e \u0648 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u062a\u062f\u0631\u06cc\u062c\u06cc \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0634\u062e\u0635 \u062b\u0627\u0644\u062b.<\/li>\n<\/ul>\n<\/li>\n<li><strong>\u0633\u0631\u062f\u0631\u06af\u0645\u06cc Server Components \u0648 Client Components:<\/strong> \u0639\u062f\u0645 \u062f\u0631\u06a9 \u0635\u062d\u06cc\u062d \u0632\u0645\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0647\u0631 \u06a9\u062f\u0627\u0645 \u0648 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0627\u0634\u062a\u0628\u0627\u0647 \u0645\u0646\u0637\u0642 \u062a\u0639\u0627\u0645\u0644\u06cc \u062f\u0631 Server Components \u06cc\u0627 \u0628\u0627\u0644\u0639\u06a9\u0633.\n<ul>\n<li><strong>\u0631\u0627\u0647\u200c\u062d\u0644:<\/strong> \u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0627\u0632 Server Components \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u062a\u0646\u0647\u0627 \u0632\u0645\u0627\u0646\u06cc <code>'use client'<\/code> \u0631\u0627 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627\u06cc \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062a\u0639\u0627\u0645\u0644\u060c \u0648\u0636\u0639\u06cc\u062a (state) \u06cc\u0627 API\u0647\u0627\u06cc \u0645\u0631\u0648\u0631\u06af\u0631 (\u0645\u0627\u0646\u0646\u062f <code>window<\/code>, <code>localStorage<\/code>) \u062f\u0627\u0631\u06cc\u062f.<\/li>\n<\/ul>\n<\/li>\n<li><strong><code>async\/await<\/code> \u062f\u0631 Client Components:<\/strong> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>async\/await<\/code> \u062f\u0631 \u0633\u0637\u062d \u0628\u0627\u0644\u0627\u06cc Client Components \u0645\u062c\u0627\u0632 \u0646\u06cc\u0633\u062a\u060c \u0632\u06cc\u0631\u0627 Client Components \u0628\u0627\u06cc\u062f \u0647\u0645\u0632\u0645\u0627\u0646 (synchronous) \u0631\u0646\u062f\u0631 \u0634\u0648\u0646\u062f.\n<ul>\n<li><strong>\u0631\u0627\u0647\u200c\u062d\u0644:<\/strong> \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 <code>props<\/code> \u0628\u0647 Client Components \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f\u060c \u06cc\u0627 Server Components \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 <code>children<\/code> \u0628\u0647 Client Components \u0628\u062f\u0647\u06cc\u062f\u060c \u06cc\u0627 \u0645\u0646\u0637\u0642 \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 Server Component \u06cc\u0627 Server Action \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<\/li>\n<li><strong>\u0646\u0627\u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u0642\u062f\u06cc\u0645\u06cc:<\/strong> \u0628\u0631\u062e\u06cc \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u06a9\u0647 \u0628\u0647 \u0634\u062f\u062a \u0628\u0647 API\u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc React \u0645\u062a\u06a9\u06cc \u0647\u0633\u062a\u0646\u062f\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0627 React 19 \u0646\u0627\u0633\u0627\u0632\u06af\u0627\u0631 \u0628\u0627\u0634\u0646\u062f.\n<ul>\n<li><strong>\u0631\u0627\u0647\u200c\u062d\u0644:<\/strong> \u0628\u0647 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f React Context \u06cc\u0627 Zustand \u06a9\u0647 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0634\u062f\u0647\u200c\u0627\u0646\u062f \u0648 \u0628\u0627 React 19 \u0633\u0627\u0632\u06af\u0627\u0631 \u0647\u0633\u062a\u0646\u062f\u060c \u0645\u0647\u0627\u062c\u0631\u062a \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<\/li>\n<li><strong>\u062e\u0637\u0627\u0647\u0627\u06cc TypeScript:<\/strong> \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 Type\u0647\u0627\u06cc \u0633\u062e\u062a\u200c\u06af\u06cc\u0631\u0627\u0646\u0647\u200c\u062a\u0631 \u062f\u0631 React 19 \u0648 Next.js 15\u060c \u0627\u0646\u062a\u0638\u0627\u0631 \u062e\u0637\u0627\u0647\u0627\u06cc TypeScript \u0631\u0627 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f.\n<ul>\n<li><strong>\u0631\u0627\u0647\u200c\u062d\u0644:<\/strong> \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f TypeScript Error Translator \u0648 \u062a\u0645\u0631\u06cc\u0646 \u0628\u0627 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc TypeScript \u062f\u0631 React 19 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062a\u0645\u0627\u0645 Type\u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0631\u0627 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f.<\/li>\n<\/ul>\n<\/li>\n<li><strong>\u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0634\u06cc\u0646\u06af \u062c\u062f\u06cc\u062f \u062f\u0631 Next.js 15:<\/strong> \u0639\u062f\u0645 \u06a9\u0634\u06cc\u0646\u06af \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc <code>fetch<\/code> \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0645\u0646\u062c\u0631 \u0628\u0647 \u0648\u0627\u06a9\u0634\u06cc\u200c\u0647\u0627\u06cc \u063a\u06cc\u0631\u0636\u0631\u0648\u0631\u06cc \u0648 \u06a9\u0627\u0647\u0634 \u0639\u0645\u0644\u06a9\u0631\u062f \u0634\u0648\u062f.\n<ul>\n<li><strong>\u0631\u0627\u0647\u200c\u062d\u0644:<\/strong> \u0628\u0647 \u0635\u0648\u0631\u062a \u0635\u0631\u06cc\u062d \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u06a9\u0634\u06cc\u0646\u06af \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>cache: 'force-cache'<\/code> (\u0628\u0631\u0627\u06cc \u06a9\u0634\u06cc\u0646\u06af \u062f\u0627\u0626\u0645\u06cc) \u06cc\u0627 <code>next: { revalidate: seconds }<\/code> (\u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u062f\u0631 \u0628\u0627\u0632\u0647\u200c\u0647\u0627\u06cc \u0632\u0645\u0627\u0646\u06cc \u0645\u0634\u062e\u0635) \u062f\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc <code>fetch<\/code> \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>\u0646\u0645\u0648\u0646\u0647 \u06a9\u062f Server Action \u0628\u0627 <code>useOptimistic<\/code> \u062f\u0631 React 19<\/h2>\n<p>\u06cc\u06a9\u06cc \u0627\u0632 \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u062a\u0631\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u062f\u0631 React 19\u060c \u0645\u0641\u0647\u0648\u0645 Actions \u0648 \u0647\u0648\u06a9\u200c\u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u0622\u0646 \u0645\u0627\u0646\u0646\u062f <code>useOptimistic<\/code> \u0648 <code>useActionState<\/code> \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0647\u0648\u06a9\u200c\u0647\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u062a\u0627 \u062a\u0639\u0627\u0645\u0644\u0627\u062a \u0628\u0627 \u0633\u0631\u0648\u0631 \u0631\u0627 \u0628\u0647 \u0634\u06a9\u0644\u06cc \u0628\u0647\u06cc\u0646\u0647\u200c\u062a\u0631 \u0648 \u0628\u0627 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0631\u0648\u0627\u0646\u200c\u062a\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f. <code>useOptimistic<\/code> \u0628\u0647 \u062e\u0635\u0648\u0635 \u0628\u0631\u0627\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0641\u0648\u0631\u06cc UI \u0642\u0628\u0644 \u0627\u0632 \u062f\u0631\u06cc\u0627\u0641\u062a \u067e\u0627\u0633\u062e \u0627\u0632 \u0633\u0631\u0648\u0631 \u0645\u0641\u06cc\u062f \u0627\u0633\u062a.<\/p>\n<pre><code class=\"language-typescript\">\n\/\/ app\/actions.ts (Server Action)\n'use server'; \/\/ \u0645\u0634\u062e\u0635 \u06a9\u0631\u062f\u0646 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 Server Action\n\nimport { revalidatePath } from 'next\/cache';\n\nexport async function updateUserName(prevState: any, formData: FormData) {\n  const name = formData.get('name') as string;\n  \/\/ \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0627 \u062a\u0623\u062e\u06cc\u0631\n  await new Promise(resolve =&gt; setTimeout(resolve, 1000));\n  console.log(`Updating user name to: ${name}`);\n  revalidatePath('\/profile'); \/\/ \u0628\u0627\u0632\u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0645\u0633\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062c\u062f\u06cc\u062f\n  return { message: `\u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0628\u0647 &quot;${name}&quot; \u062a\u063a\u06cc\u06cc\u0631 \u06cc\u0627\u0641\u062a.` };\n}\n\n\/\/ app\/profile\/page.tsx (\u0635\u0641\u062d\u0647 \u067e\u0631\u0648\u0641\u0627\u06cc\u0644 - Client Component \u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u0645\u0644)\n'use client'; \/\/ \u0627\u06cc\u0646 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0628\u0647 \u062a\u0639\u0627\u0645\u0644 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f\n\nimport { useActionState, useOptimistic } from 'react';\nimport { updateUserName } from '..\/actions';\n\nexport default function ProfilePage() {\n  \/\/ useActionState \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a Action (pending\u060c error\u060c result)\n  const [state, formAction] = useActionState(updateUserName, { message: '' });\n\n  \/\/ useOptimistic \u0628\u0631\u0627\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0641\u0648\u0631\u06cc UI \u0628\u0647 \u0635\u0648\u0631\u062a \u062e\u0648\u0634\u200c\u0628\u06cc\u0646\u0627\u0646\u0647\n  const [optimisticName, addOptimisticName] = useOptimistic(\n    '\u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0641\u0639\u0644\u06cc', \/\/ \u0645\u0642\u062f\u0627\u0631 \u0627\u0648\u0644\u06cc\u0647 (\u0645\u062b\u0644\u0627\u064b \u0627\u0632 props \u06cc\u0627 context)\n    (currentName: string, newName: string) =&gt; newName \/\/ \u062a\u0627\u0628\u0639 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u062e\u0648\u0634\u200c\u0628\u06cc\u0646\u0627\u0646\u0647\n  );\n\n  return (\n    &lt;div&gt;\n      &lt;h2&gt;\u067e\u0631\u0648\u0641\u0627\u06cc\u0644 \u06a9\u0627\u0631\u0628\u0631\u06cc&lt;\/h2&gt;\n      &lt;p&gt;&lt;strong&gt;\u0646\u0627\u0645 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647:&lt;\/strong&gt; {optimisticName}&lt;\/p&gt;\n      &lt;form action={async (formData) =&gt; {\n        addOptimisticName(formData.get('name') as string); \/\/ \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u062e\u0648\u0634\u200c\u0628\u06cc\u0646\u0627\u0646\u0647 UI\n        await formAction(formData); \/\/ \u0627\u062c\u0631\u0627\u06cc Server Action \u0648 \u0627\u0646\u062a\u0638\u0627\u0631 \u0628\u0631\u0627\u06cc \u067e\u0627\u0633\u062e\n      }}&gt;\n        &lt;label htmlFor=&quot;userName&quot;&gt;\u0646\u0627\u0645 \u062c\u062f\u06cc\u062f:&lt;\/label&gt;\n        &lt;input type=&quot;text&quot; id=&quot;userName&quot; name=&quot;name&quot; defaultValue={optimisticName} \/&gt;\n        &lt;button type=&quot;submit&quot; disabled={state.pending}&gt;\n          {state.pending ? '\u062f\u0631 \u062d\u0627\u0644 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc...' : '\u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0646\u0627\u0645'}\n        &lt;\/button&gt;\n      &lt;\/form&gt;\n      {state.message &amp;&amp; &lt;p style={{ color: 'green' }}&gt;{state.message}&lt;\/p&gt;}\n      {state.error &amp;&amp; &lt;p style={{ color: 'red' }}&gt;\u062e\u0637\u0627: {state.error.message}&lt;\/p&gt;}\n    &lt;\/div&gt;\n  );\n}\n<\/code><\/pre>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0646\u0627\u0645 \u062c\u062f\u06cc\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0647 \u0648 \u062f\u06a9\u0645\u0647 &#8220;\u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0646\u0627\u0645&#8221; \u0631\u0627 \u0645\u06cc\u200c\u0632\u0646\u062f\u060c <code>useOptimistic<\/code> \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 UI \u0631\u0627 \u0628\u0627 \u0646\u0627\u0645 \u062c\u062f\u06cc\u062f \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u062f\u0631 \u0647\u0645\u06cc\u0646 \u062d\u06cc\u0646\u060c Server Action \u062f\u0631 \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u06af\u0631 Server Action \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f\u060c UI \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0647\u0633\u062a \u0628\u0627\u0642\u06cc \u0645\u06cc\u200c\u0645\u0627\u0646\u062f. \u0627\u06af\u0631 \u062e\u0637\u0627\u06cc\u06cc \u0631\u062e \u062f\u0647\u062f\u060c <code>useOptimistic<\/code> \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f UI \u0631\u0627 \u0628\u0647 \u062d\u0627\u0644\u062a \u0642\u0628\u0644 \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f \u06cc\u0627 \u0648\u0636\u0639\u06cc\u062a \u062e\u0637\u0627 \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0647\u062f.<\/p>\n<h2>\u0646\u062a\u06cc\u062c\u0647\u200c\u06af\u06cc\u0631\u06cc: \u0622\u06cc\u0646\u062f\u0647 \u0631\u0648\u0634\u0646 \u062a\u0648\u0633\u0639\u0647 \u0648\u0628 \u0628\u0627 Next.js 15 \u0648 React 19<\/h2>\n<p>Next.js 15 \u0648 React 19 \u0628\u0627 \u0627\u0631\u0627\u0626\u0647 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0646\u0648\u0622\u0648\u0631\u0627\u0646\u0647 \u0645\u0627\u0646\u0646\u062f React Compiler\u060c \u0628\u0647\u0628\u0648\u062f\u0647\u0627\u06cc App Router\u060c Server Actions \u0648 \u062a\u0645\u0631\u06a9\u0632 \u0628\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f\u060c \u0645\u0633\u06cc\u0631 \u062a\u0648\u0633\u0639\u0647 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0631\u0627 \u062f\u06af\u0631\u06af\u0648\u0646 \u06a9\u0631\u062f\u0647\u200c\u0627\u0646\u062f. \u0627\u06cc\u0646 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u060c \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u0631\u0627 \u062f\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u062a\u0627 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0648\u0628 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631\u060c \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631\u062a\u0631 \u0648 \u0628\u0627 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0647\u062a\u0631\u06cc \u0631\u0627 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f. <strong>\u0622\u0645\u0648\u0632\u0634 Next.js 15<\/strong> \u0648 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0639\u0645\u06cc\u0642 \u0645\u0641\u0627\u0647\u06cc\u0645 \u062c\u062f\u06cc\u062f \u0622\u0646\u060c \u0633\u0631\u0645\u0627\u06cc\u0647\u200c\u06af\u0630\u0627\u0631\u06cc \u0627\u0631\u0632\u0634\u0645\u0646\u062f\u06cc \u0628\u0631\u0627\u06cc \u0647\u0631 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647\u200c\u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0648\u0628 \u0645\u062f\u0631\u0646 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f \u0627\u0633\u062a.<\/p>\n<p>\u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0645\u0647\u0627\u062c\u0631\u062a \u0628\u0647 \u0627\u06cc\u0646 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0686\u0627\u0644\u0634\u200c\u0647\u0627\u06cc\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u0645\u0632\u0627\u06cc\u0627\u06cc \u0628\u0644\u0646\u062f\u0645\u062f\u062a \u0622\u0646\u200c\u0647\u0627 \u0627\u0632 \u0646\u0638\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f\u060c \u062a\u062c\u0631\u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0648 \u0622\u0645\u0627\u062f\u06af\u06cc \u0628\u0631\u0627\u06cc \u0622\u06cc\u0646\u062f\u0647 \u0648\u0628\u060c \u0627\u06cc\u0646 \u062a\u0644\u0627\u0634 \u0631\u0627 \u0627\u0631\u0632\u0634\u0645\u0646\u062f \u0645\u06cc\u200c\u0633\u0627\u0632\u062f. \u0628\u0627 \u062f\u0631\u06a9 \u0635\u062d\u06cc\u062d \u0627\u06cc\u0646 \u0641\u0646\u0627\u0648\u0631\u06cc\u200c\u0647\u0627 \u0648 \u0628\u0647\u200c\u06a9\u0627\u0631\u06af\u06cc\u0631\u06cc \u0628\u0647\u062a\u0631\u06cc\u0646 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0633\u0637\u062d \u0628\u0627\u0644\u0627\u062a\u0631\u06cc \u0627\u0631\u062a\u0642\u0627 \u062f\u0647\u06cc\u062f \u0648 \u0631\u0627\u0647 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0646\u0648\u0622\u0648\u0631\u06cc\u200c\u0647\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631 \u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0648\u0628 \u0647\u0645\u0648\u0627\u0631 \u06a9\u0646\u06cc\u062f.<\/p>\n<section class=\"hgai-faq\">\n<h2>\u0633\u0624\u0627\u0644\u0627\u062a \u0645\u062a\u062f\u0627\u0648\u0644<\/h2>\n<details>\n<summary>Next.js 15 \u0648 React 19 \u0686\u0647 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0627\u0635\u0644\u06cc \u0628\u0631\u0627\u06cc \u0628\u0647\u0628\u0648\u062f \u0639\u0645\u0644\u06a9\u0631\u062f \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u062f\u0627\u0631\u0646\u062f\u061f<\/summary>\n<p>\u0627\u06cc\u0646 \u0646\u0633\u062e\u0647\u200c\u0647\u0627 \u0628\u0627 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f Turbopack\u060c Partial Prerendering (PPR)\u060c React Server Components (RSC)\u060c \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u06a9\u0634\u06cc\u0646\u06af \u0628\u0647\u06cc\u0646\u0647\u200c\u0634\u062f\u0647\u060c \u0628\u0647\u0628\u0648\u062f \u0627\u0633\u062a\u0631\u06cc\u0645\u06cc\u0646\u06af \u0648 API\u0647\u0627\u06cc \u067e\u06cc\u0634\u200c\u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u0646\u0627\u0628\u0639\u060c \u0628\u0647 \u06a9\u0627\u0647\u0634 \u062d\u062c\u0645 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u060c \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0635\u0641\u062d\u0627\u062a \u0648 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0631\u0648\u0627\u0646\u200c\u062a\u0631 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<\/details>\n<details>\n<summary>React Compiler \u0686\u06af\u0648\u0646\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 memoization \u062f\u0633\u062a\u06cc \u0631\u0627 \u062f\u0631 React \u0627\u0632 \u0628\u06cc\u0646 \u0645\u06cc\u200c\u0628\u0631\u062f\u061f<\/summary>\n<p>React Compiler \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u0632\u0645\u0627\u0646 \u0633\u0627\u062e\u062a \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0627\u0628\u0639 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 \u0648 \u0647\u0648\u06a9\u200c\u0647\u0627 \u0631\u0627 \u062a\u062d\u0644\u06cc\u0644 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0645\u0639\u0627\u062f\u0644\u200c\u0647\u0627\u06cc memoized \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627 \u0628\u0633\u062a\u0647\u200c\u0628\u0646\u062f\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631 \u0648 callbacks \u062f\u0631 \u0627\u0633\u0644\u0627\u062a\u200c\u0647\u0627\u06cc memo \u0645\u062f\u06cc\u0631\u06cc\u062a \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644\u0631 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0633\u062a\u06cc \u0627\u0632 `useMemo` \u0648 `useCallback` \u0631\u0627 \u062d\u0630\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<\/details>\n<details>\n<summary>App Router \u062f\u0631 Next.js 15 \u0686\u06cc\u0633\u062a \u0648 \u0686\u0631\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Server Components \u062f\u0631 \u0622\u0646 \u0627\u0647\u0645\u06cc\u062a \u062f\u0627\u0631\u062f\u061f<\/summary>\n<p>App Router \u06cc\u06a9 \u0645\u0639\u0645\u0627\u0631\u06cc \u062c\u062f\u06cc\u062f \u062f\u0631 Next.js \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631 \u067e\u0627\u06cc\u0647 React Server Components (RSC) \u0628\u0646\u0627 \u0634\u062f\u0647 \u0648 \u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0633\u0631\u0648\u0631 \u0631\u0646\u062f\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Server Components \u062d\u062c\u0645 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0633\u0645\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a \u0631\u0627 \u0628\u0647 \u0634\u062f\u062a \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c SEO \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc\u200c\u0628\u062e\u0634\u062f\u060c \u0627\u0645\u06a9\u0627\u0646 \u0647\u0645\u200c\u0645\u06a9\u0627\u0646\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062a\u062c\u0631\u0628\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<\/details>\n<details>\n<summary>\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u06a9\u0644\u06cc\u062f\u06cc \u062f\u0631 \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u06a9\u0634\u06cc\u0646\u06af Next.js 15 \u0686\u06cc\u0633\u062a \u0648 \u0686\u06af\u0648\u0646\u0647 \u0628\u0627\u06cc\u062f \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0631\u062f\u061f<\/summary>\n<p>\u062f\u0631 Next.js 15\u060c \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc `fetch`\u060c `GET` Route Handler\u0647\u0627 \u0648 \u067e\u06cc\u0645\u0627\u06cc\u0634\u200c\u0647\u0627\u06cc \u06a9\u0644\u0627\u06cc\u0646\u062a \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u06a9\u0634 \u0646\u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u06a9\u0634\u06cc\u0646\u06af\u060c \u0628\u0627\u06cc\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u0635\u0631\u06cc\u062d \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 `cache: &#039;force-cache&#039;` \u0628\u0631\u0627\u06cc \u06a9\u0634\u06cc\u0646\u06af \u062f\u0627\u0626\u0645\u06cc \u06cc\u0627 `next: { revalidate: seconds }` \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u062f\u0631 \u0628\u0627\u0632\u0647\u200c\u0647\u0627\u06cc \u0632\u0645\u0627\u0646\u06cc \u0645\u0634\u062e\u0635\u060c \u062f\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc `fetch` \u062e\u0648\u062f \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/details>\n<details>\n<summary>\u0686\u0647 \u0647\u0648\u06a9\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f\u06cc \u062f\u0631 React 19 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0641\u0631\u0645\u200c\u0647\u0627 \u0648 \u062a\u0639\u0627\u0645\u0644\u0627\u062a \u0633\u0631\u0648\u0631 \u0645\u0639\u0631\u0641\u06cc \u0634\u062f\u0647\u200c\u0627\u0646\u062f\u061f<\/summary>\n<p>React 19 \u0647\u0648\u06a9\u200c\u0647\u0627\u06cc `useOptimistic` (\u0628\u0631\u0627\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0641\u0648\u0631\u06cc UI \u0628\u0627 \u0642\u0627\u0628\u0644\u06cc\u062a \u0628\u0627\u0632\u06af\u0634\u062a \u062e\u0648\u062f\u06a9\u0627\u0631)\u060c `useFormStatus` (\u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0648\u0636\u0639\u06cc\u062a \u0641\u0631\u0645 \u0648\u0627\u0644\u062f) \u0648 `useActionState` (\u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u062f\u0631 Actions) \u0631\u0627 \u0645\u0639\u0631\u0641\u06cc \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0647\u0648\u06a9\u200c\u0647\u0627 \u0628\u0647 \u0633\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0641\u0631\u0645\u200c\u0647\u0627 \u0648 \u062a\u0639\u0627\u0645\u0644\u0627\u062a \u0646\u0627\u0647\u0645\u06af\u0627\u0645 \u0628\u0627 \u0633\u0631\u0648\u0631 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<\/details>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Next.js 15 \u0648 React 19 \u0628\u0627 \u0645\u0639\u0631\u0641\u06cc React Compiler\u060c App Router \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0648 \u0628\u0647\u0628\u0648\u062f\u0647\u0627\u06cc \u0686\u0634\u0645\u06af\u06cc\u0631 \u062f\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f\u060c \u062a\u062c\u0631\u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0631\u0627 \u0645\u062a\u062d\u0648\u0644 \u0633\u0627\u062e\u062a\u0647\u200c\u0627\u0646\u062f. \u0627\u06cc\u0646 \u0646\u0633\u062e\u0647\u200c\u0647\u0627 \u0628\u0627 \u06a9\u0627\u0647\u0634 \u062d\u062c\u0645 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0633\u0645\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a\u060c \u06a9\u0634\u06cc\u0646\u06af \u0647\u0648\u0634\u0645\u0646\u062f \u0648 API\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f\u060c \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u062a\u0627 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0648\u0628 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0648 \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631\u062a\u0631\u06cc \u0628\u0633\u0627\u0632\u0646\u062f \u0648 \u0633\u0631\u0639\u062a \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0686\u0634\u0645\u06af\u06cc\u0631\u06cc \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u0646\u062f.<\/p>\n","protected":false},"author":1,"featured_media":438,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[18],"tags":[125,485,120,481,119,482,483,484,486,66],"class_list":["post-436","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-18","tag-app-router","tag-frontend-performance","tag-next-js","tag-next-js-15","tag-react","tag-react-19","tag-react-compiler","tag-server-components","tag-web-development","tag-66"],"acf":[],"_links":{"self":[{"href":"https:\/\/hmoazzen.ir\/blog\/wp-json\/wp\/v2\/posts\/436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hmoazzen.ir\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hmoazzen.ir\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hmoazzen.ir\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hmoazzen.ir\/blog\/wp-json\/wp\/v2\/comments?post=436"}],"version-history":[{"count":2,"href":"https:\/\/hmoazzen.ir\/blog\/wp-json\/wp\/v2\/posts\/436\/revisions"}],"predecessor-version":[{"id":441,"href":"https:\/\/hmoazzen.ir\/blog\/wp-json\/wp\/v2\/posts\/436\/revisions\/441"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hmoazzen.ir\/blog\/wp-json\/wp\/v2\/media\/438"}],"wp:attachment":[{"href":"https:\/\/hmoazzen.ir\/blog\/wp-json\/wp\/v2\/media?parent=436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hmoazzen.ir\/blog\/wp-json\/wp\/v2\/categories?post=436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hmoazzen.ir\/blog\/wp-json\/wp\/v2\/tags?post=436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}