<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: khaled hamdy</title>
    <description>The latest articles on Forem by khaled hamdy (@dev_khaled).</description>
    <link>https://forem.com/dev_khaled</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3599339%2F750efab1-03ca-4a0b-a619-12662b55495d.png</url>
      <title>Forem: khaled hamdy</title>
      <link>https://forem.com/dev_khaled</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/dev_khaled"/>
    <language>en</language>
    <item>
      <title>Use Cache In Nextjs</title>
      <dc:creator>khaled hamdy</dc:creator>
      <pubDate>Thu, 06 Nov 2025 15:36:51 +0000</pubDate>
      <link>https://forem.com/dev_khaled/use-cache-in-nextjs-5eab</link>
      <guid>https://forem.com/dev_khaled/use-cache-in-nextjs-5eab</guid>
      <description>&lt;p&gt;من مشكلة أداء إلى موقع أسرع بمرتين!&lt;/p&gt;

&lt;p&gt;كنت شغال على مشروع بـ Next.js والموقع كان بيجيب بيانات من API خارجي.&lt;br&gt;
كل حاجة كانت تمام في البداية، لحد ما عدد المستخدمين زاد… والموقع بدأ يبطّأ جدًا 😩&lt;br&gt;
كل مرة كان بيعمل fetch لنفس البيانات بدون داعي!&lt;/p&gt;

&lt;p&gt;بدأت أدور على حل يخلي الأداء أسرع من غير ما أغير في الكود كله.&lt;br&gt;
لحد ما اكتشفت ميزة اسمها 'use cache' في Next.js ⚡&lt;/p&gt;

&lt;p&gt;💡 الفكرة ببساطة:&lt;/p&gt;

&lt;p&gt;'use cache' بتقول لـ Next.js:&lt;/p&gt;

&lt;p&gt;“النتيجة اللي راجعة من الـ function أو الـ route مش بتتغير كتير، فخزنها مؤقتًا في الكاش عشان لما أطلبها تاني، ترجعلي فورًا من غير ما أعمل fetch تاني.”&lt;/p&gt;

&lt;p&gt;🧠 إزاي استخدمتها:&lt;/p&gt;

&lt;p&gt;1️⃣ أول حاجة فعلت الكاش في ملف الإعدادات:&lt;/p&gt;

&lt;p&gt;// next.config.ts&lt;br&gt;
import type { NextConfig } from 'next'&lt;/p&gt;

&lt;p&gt;const nextConfig: NextConfig = {&lt;br&gt;
  cacheComponents: true,&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;export default nextConfig&lt;/p&gt;

&lt;p&gt;2️⃣ بعد كده استخدمتها جوه Route Handler بالشكل ده:&lt;/p&gt;

&lt;p&gt;'use cache'&lt;/p&gt;

&lt;p&gt;export async function GET() {&lt;br&gt;
  const data = await fetch('&lt;a href="https://api.example.com/posts'" rel="noopener noreferrer"&gt;https://api.example.com/posts'&lt;/a&gt;)&lt;br&gt;
  return Response.json(data)&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;ولما البيانات تتغير، بعمل revalidation باستخدام:&lt;/p&gt;

&lt;p&gt;revalidateTag('TagName')&lt;/p&gt;

&lt;p&gt;⚙️ النتيجة؟&lt;/p&gt;

&lt;p&gt;الموقع بقى أسرع بوضوح 💨&lt;/p&gt;

&lt;p&gt;استجابة السيرفر قلت جدًا&lt;/p&gt;

&lt;p&gt;والأداء العام اتحسّن بدون ما أغير الكود الأساسي 🔥&lt;/p&gt;

&lt;p&gt;🧭 الدرس اللي اتعلمته:&lt;/p&gt;

&lt;p&gt;أحيانًا الحل مش إنك تكتب كود جديد،&lt;br&gt;
لكن إنك تفكر في تحسين اللي عندك.&lt;/p&gt;

&lt;h1&gt;
  
  
  Nextjs #WebDevelopment #Performance #Caching #LearningByDoing #Frontend
&lt;/h1&gt;

</description>
      <category>performance</category>
      <category>javascript</category>
      <category>tutorial</category>
      <category>nextjs</category>
    </item>
  </channel>
</rss>
