[{"data":1,"prerenderedAt":3942},["ShallowReactive",2],{"post-/albda-ma-nuxt-ar":3,"author-رائد-البحري-ar":3924},{"id":4,"title":5,"author":6,"body":7,"category":3896,"description":3897,"extension":3898,"image":3899,"isDraft":3900,"isFeatured":413,"locale":3901,"meta":3902,"navigation":413,"path":3913,"publishedAt":3914,"readingTime":912,"seo":3915,"stem":3916,"tags":3917,"updatedAt":3922,"__hash__":3923},"articles_ar/البدء-مع-nuxt.md","البدء مع Nuxt: دليل شامل لتطوير الويب الحديث","رائد-البحري",{"type":8,"value":9,"toc":3851},"minimark",[10,14,17,22,25,30,37,50,61,71,77,173,178,205,211,225,229,233,236,252,256,259,279,282,290,293,324,331,335,338,344,348,352,358,363,494,499,502,511,725,729,732,737,973,976,1017,1021,1028,1033,1260,1263,1311,1315,1318,1323,1576,1581,1709,1714,1768,1772,1778,1783,1853,1856,1946,1951,1959,2057,2061,2064,2069,2245,2248,2419,2423,2426,2430,2445,2450,2484,2488,2502,2505,2625,2629,2643,2646,2700,2704,2707,2720,2724,2738,2744,2748,2762,2766,2769,2783,2787,2790,2795,2813,2818,2852,2861,2866,2886,2890,2894,2897,2950,2954,2965,2969,2972,2977,3197,3201,3208,3278,3282,3302,3306,3309,3519,3523,3620,3623,3664,3668,3673,3696,3701,3725,3730,3747,3751,3754,3771,3774,3778,3781,3836,3839,3842,3845,3848],[11,12,13],"p",{},"أصبح Nuxt أحد أكثر الأطر شيوعاً لبناء تطبيقات الويب الحديثة مع Vue.js. سواء كنت تقوم بإنشاء مدونة، موقع تجارة إلكترونية، أو تطبيق ويب معقد، يوفر Nuxt الأدوات والهيكل الذي تحتاجه لبناء مشاريع سريعة ومتوافقة مع SEO وسهلة الصيانة.",[11,15,16],{},"سيأخذك هذا الدليل الشامل من الصفر إلى الإنتاجية مع Nuxt، تغطية كل شيء من الإعداد الأساسي إلى الميزات المتقدمة وأفضل الممارسات.",[18,19,21],"h2",{"id":20},"ما-هو-nuxt-ولماذا-يجب-استخدامه","ما هو Nuxt ولماذا يجب استخدامه؟",[11,23,24],{},"Nuxt هو إطار عمل مبني على Vue.js يضيف ميزات قوية للتطبيقات الجاهزة للإنتاج. فكر فيه كـ Vue.js مع قوى خارقة لبناء تطبيقات الويب الكاملة.",[26,27,29],"h3",{"id":28},"الفوائد-الرئيسية","الفوائد الرئيسية",[11,31,32,36],{},[33,34,35],"strong",{},"1. الرسم من جانب الخادم (SSR) جاهز","\nعلى عكس تطبيقات Vue التقليدية التي ترسم على العميل، يمكن لـ Nuxt رسم صفحاتك على الخادم، تسليم HTML مكتمل للمتصفح. هذا يعني:",[38,39,40,44,47],"ul",{},[41,42,43],"li",{},"SEO أفضل (محركات البحث ترى محتواك الكامل فوراً)",[41,45,46],{},"تحميل صفحات أولي أسرع",[41,48,49],{},"أداء أفضل على الأجهزة البطيئة",[11,51,52,55,56,60],{},[33,53,54],{},"2. التوجيه المبني على الملفات","\nلا حاجة لتكوين المسارات يدوياً. أنشئ ملف في مجلد ",[57,58,59],"code",{},"pages","، وNuxt ينشئ مسار له تلقائياً:",[62,63,68],"pre",{"className":64,"code":66,"language":67},[65],"language-text","pages/\n  index.vue          → /\n  about.vue          → /about\n  blog/\n    index.vue        → /blog\n    [slug].vue       → /blog/:slug\n","text",[57,69,66],{"__ignoreMap":70},"",[11,72,73,76],{},[33,74,75],{},"3. الاستيراد التلقائي","\nيستورد Nuxt تلقائياً المكونات والوظائف والأدوات. اكتب كود أقل:",[62,78,82],{"className":79,"code":80,"language":81,"meta":70,"style":70},"language-vue shiki shiki-themes github-light dark-plus dark-plus","\u003C!-- لا حاجة للاستيراد! -->\n\u003Cscript setup>\nconst count = ref(0)  // ref مستورد تلقائياً\nconst route = useRoute()  // useRoute مستورد تلقائياً\n\u003C/script>\n","vue",[57,83,84,93,111,144,163],{"__ignoreMap":70},[85,86,89],"span",{"class":87,"line":88},"line",1,[85,90,92],{"class":91},"s56mj","\u003C!-- لا حاجة للاستيراد! -->\n",[85,94,96,100,104,108],{"class":87,"line":95},2,[85,97,99],{"class":98},"sffyN","\u003C",[85,101,103],{"class":102},"ssFZ1","script",[85,105,107],{"class":106},"sFcZJ"," setup",[85,109,110],{"class":98},">\n",[85,112,114,118,122,126,130,134,138,141],{"class":87,"line":113},3,[85,115,117],{"class":116},"s5uUr","const",[85,119,121],{"class":120},"sToQf"," count",[85,123,125],{"class":124},"s1p9p"," =",[85,127,129],{"class":128},"svuFb"," ref",[85,131,133],{"class":132},"sG4b4","(",[85,135,137],{"class":136},"seC34","0",[85,139,140],{"class":132},")  ",[85,142,143],{"class":91},"// ref مستورد تلقائياً\n",[85,145,147,149,152,154,157,160],{"class":87,"line":146},4,[85,148,117],{"class":116},[85,150,151],{"class":120}," route",[85,153,125],{"class":124},[85,155,156],{"class":128}," useRoute",[85,158,159],{"class":132},"()  ",[85,161,162],{"class":91},"// useRoute مستورد تلقائياً\n",[85,164,166,169,171],{"class":87,"line":165},5,[85,167,168],{"class":98},"\u003C/",[85,170,103],{"class":102},[85,172,110],{"class":98},[11,174,175],{},[33,176,177],{},"4. مبني على أدوات حديثة",[38,179,180,186,192,199],{},[41,181,182,185],{},[33,183,184],{},"Vite"," للتطوير السريع وإعادة التحميل الساخن (HMR)",[41,187,188,191],{},[33,189,190],{},"Nitro"," لمحرك خادم قوي ومحمول",[41,193,194,195,198],{},"دعم ",[33,196,197],{},"TypeScript"," جاهز",[41,200,201,204],{},[33,202,203],{},"Vue 3"," مع Composition API",[11,206,207,210],{},[33,208,209],{},"5. أوضاع رسم مرنة","\nاختر النهج الأفضل لكل صفحة:",[38,212,213,216,219,222],{},[41,214,215],{},"SSR (الرسم من جانب الخادم)",[41,217,218],{},"SPA (تطبيق صفحة واحدة)",[41,220,221],{},"SSG (توليد الموقع الثابت)",[41,223,224],{},"ISR (التجديد الثابت التدريجي)",[18,226,228],{"id":227},"تثبيت-nuxt","تثبيت Nuxt",[26,230,232],{"id":231},"المتطلبات-الأساسية","المتطلبات الأساسية",[11,234,235],{},"تأكد من تثبيت Node.js (الإصدار 18.0.0 أو أعلى). تحقق من إصدارك:",[62,237,241],{"className":238,"code":239,"language":240,"meta":70,"style":70},"language-bash shiki shiki-themes github-light dark-plus dark-plus","node --version\n","bash",[57,242,243],{"__ignoreMap":70},[85,244,245,248],{"class":87,"line":88},[85,246,247],{"class":128},"node",[85,249,251],{"class":250},"s7v1m"," --version\n",[26,253,255],{"id":254},"إنشاء-مشروعك-الأول","إنشاء مشروعك الأول",[11,257,258],{},"افتح الطرفية وشغل:",[62,260,262],{"className":238,"code":261,"language":240,"meta":70,"style":70},"npx nuxi@latest init my-app\n",[57,263,264],{"__ignoreMap":70},[85,265,266,269,273,276],{"class":87,"line":88},[85,267,268],{"class":128},"npx",[85,270,272],{"class":271},"sGDl4"," nuxi@latest",[85,274,275],{"class":271}," init",[85,277,278],{"class":271}," my-app\n",[11,280,281],{},"سيتم سؤالك عن بعض الأسئلة:",[38,283,284,287],{},[41,285,286],{},"مدير الحزم: اختر npm، yarn، pnpm، أو bun",[41,288,289],{},"تهيئة مستودع git: نعم/لا",[11,291,292],{},"بعد الإنشاء، انتقل إلى مشروعك وابدأ خادم التطوير:",[62,294,296],{"className":238,"code":295,"language":240,"meta":70,"style":70},"cd my-app\nnpm install\nnpm run dev\n",[57,297,298,306,314],{"__ignoreMap":70},[85,299,300,304],{"class":87,"line":88},[85,301,303],{"class":302},"sNX3-","cd",[85,305,278],{"class":271},[85,307,308,311],{"class":87,"line":95},[85,309,310],{"class":128},"npm",[85,312,313],{"class":271}," install\n",[85,315,316,318,321],{"class":87,"line":113},[85,317,310],{"class":128},[85,319,320],{"class":271}," run",[85,322,323],{"class":271}," dev\n",[11,325,326,327,330],{},"افتح متصفحك على ",[57,328,329],{},"http://localhost:3000"," وسترى تطبيق Nuxt الجديد!",[26,332,334],{"id":333},"هيكل-المشروع","هيكل المشروع",[11,336,337],{},"إليك ما ينشئه Nuxt لك:",[62,339,342],{"className":340,"code":341,"language":67},[65],"my-app/\n├── .nuxt/              # الملفات المولدة (لا تحرر)\n├── node_modules/       # التبعيات\n├── pages/              # صفحات التطبيق\n│   └── index.vue       # الصفحة الرئيسية (/)\n├── public/             # الملفات الثابتة\n├── server/             # مسارات API الخلفية\n├── app.vue             # المكون الجذر\n├── nuxt.config.ts      # تكوين Nuxt\n└── package.json        # بيانات المشروع\n",[57,343,341],{"__ignoreMap":70},[18,345,347],{"id":346},"المفاهيم-الأساسية","المفاهيم الأساسية",[26,349,351],{"id":350},"_1-الصفحات-والتوجيه","1. الصفحات والتوجيه",[11,353,354,355,357],{},"أنشئ ملف جديد في مجلد ",[57,356,59],{},":",[11,359,360],{},[33,361,362],{},"pages/about.vue",[62,364,366],{"className":79,"code":365,"language":81,"meta":70,"style":70},"\u003Cscript setup>\ndefinePageMeta({\n  title: 'من نحن'\n})\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ch1>عن شركتنا\u003C/h1>\n    \u003Cp>نبني منتجات رائعة...\u003C/p>\n  \u003C/div>\n\u003C/template>\n",[57,367,368,378,386,395,400,408,415,425,436,457,475,485],{"__ignoreMap":70},[85,369,370,372,374,376],{"class":87,"line":88},[85,371,99],{"class":98},[85,373,103],{"class":102},[85,375,107],{"class":106},[85,377,110],{"class":98},[85,379,380,383],{"class":87,"line":95},[85,381,382],{"class":128},"definePageMeta",[85,384,385],{"class":132},"({\n",[85,387,388,392],{"class":87,"line":113},[85,389,391],{"class":390},"sZiGn","  title:",[85,393,394],{"class":271}," 'من نحن'\n",[85,396,397],{"class":87,"line":146},[85,398,399],{"class":132},"})\n",[85,401,402,404,406],{"class":87,"line":165},[85,403,168],{"class":98},[85,405,103],{"class":102},[85,407,110],{"class":98},[85,409,411],{"class":87,"line":410},6,[85,412,414],{"emptyLinePlaceholder":413},true,"\n",[85,416,418,420,423],{"class":87,"line":417},7,[85,419,99],{"class":98},[85,421,422],{"class":102},"template",[85,424,110],{"class":98},[85,426,428,431,434],{"class":87,"line":427},8,[85,429,430],{"class":98},"  \u003C",[85,432,433],{"class":102},"div",[85,435,110],{"class":98},[85,437,439,442,445,448,451,453,455],{"class":87,"line":438},9,[85,440,441],{"class":98},"    \u003C",[85,443,444],{"class":102},"h1",[85,446,447],{"class":98},">",[85,449,450],{"class":132},"عن شركتنا",[85,452,168],{"class":98},[85,454,444],{"class":102},[85,456,110],{"class":98},[85,458,460,462,464,466,469,471,473],{"class":87,"line":459},10,[85,461,441],{"class":98},[85,463,11],{"class":102},[85,465,447],{"class":98},[85,467,468],{"class":132},"نبني منتجات رائعة...",[85,470,168],{"class":98},[85,472,11],{"class":102},[85,474,110],{"class":98},[85,476,478,481,483],{"class":87,"line":477},11,[85,479,480],{"class":98},"  \u003C/",[85,482,433],{"class":102},[85,484,110],{"class":98},[85,486,488,490,492],{"class":87,"line":487},12,[85,489,168],{"class":98},[85,491,422],{"class":102},[85,493,110],{"class":98},[11,495,496],{},[33,497,498],{},"المسارات الديناميكية:",[11,500,501],{},"أنشئ ملف مع أقواس للأجزاء الديناميكية:",[11,503,504],{},[33,505,506,507,510],{},"pages/blog/",[85,508,509],{},"slug",".vue",[62,512,514],{"className":79,"code":513,"language":81,"meta":70,"style":70},"\u003Cscript setup>\nconst route = useRoute()\nconst slug = route.params.slug\n\n// جلب منشور المدونة بناءً على slug\nconst { data: post } = await useFetch(`/api/posts/${slug}`)\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Carticle>\n    \u003Ch1>{{ post.title }}\u003C/h1>\n    \u003Cdiv v-html=\"post.content\">\u003C/div>\n  \u003C/article>\n\u003C/template>\n",[57,515,516,526,539,561,565,570,620,628,632,640,649,676,707,716],{"__ignoreMap":70},[85,517,518,520,522,524],{"class":87,"line":88},[85,519,99],{"class":98},[85,521,103],{"class":102},[85,523,107],{"class":106},[85,525,110],{"class":98},[85,527,528,530,532,534,536],{"class":87,"line":95},[85,529,117],{"class":116},[85,531,151],{"class":120},[85,533,125],{"class":124},[85,535,156],{"class":128},[85,537,538],{"class":132},"()\n",[85,540,541,543,546,548,550,553,556,558],{"class":87,"line":113},[85,542,117],{"class":116},[85,544,545],{"class":120}," slug",[85,547,125],{"class":124},[85,549,151],{"class":390},[85,551,552],{"class":132},".",[85,554,555],{"class":390},"params",[85,557,552],{"class":132},[85,559,560],{"class":390},"slug\n",[85,562,563],{"class":87,"line":146},[85,564,414],{"emptyLinePlaceholder":413},[85,566,567],{"class":87,"line":165},[85,568,569],{"class":91},"// جلب منشور المدونة بناءً على slug\n",[85,571,572,574,577,581,584,587,590,593,597,600,602,605,609,611,614,617],{"class":87,"line":410},[85,573,117],{"class":116},[85,575,576],{"class":132}," { ",[85,578,580],{"class":579},"s9TRk","data",[85,582,583],{"class":132},": ",[85,585,586],{"class":120},"post",[85,588,589],{"class":132}," } ",[85,591,592],{"class":124},"=",[85,594,596],{"class":595},"sEkCa"," await",[85,598,599],{"class":128}," useFetch",[85,601,133],{"class":132},[85,603,604],{"class":271},"`/api/posts/",[85,606,608],{"class":607},"se2iQ","${",[85,610,509],{"class":390},[85,612,613],{"class":607},"}",[85,615,616],{"class":271},"`",[85,618,619],{"class":132},")\n",[85,621,622,624,626],{"class":87,"line":417},[85,623,168],{"class":98},[85,625,103],{"class":102},[85,627,110],{"class":98},[85,629,630],{"class":87,"line":427},[85,631,414],{"emptyLinePlaceholder":413},[85,633,634,636,638],{"class":87,"line":438},[85,635,99],{"class":98},[85,637,422],{"class":102},[85,639,110],{"class":98},[85,641,642,644,647],{"class":87,"line":459},[85,643,430],{"class":98},[85,645,646],{"class":102},"article",[85,648,110],{"class":98},[85,650,651,653,655,657,660,662,664,667,670,672,674],{"class":87,"line":477},[85,652,441],{"class":98},[85,654,444],{"class":102},[85,656,447],{"class":98},[85,658,659],{"class":132},"{{ ",[85,661,586],{"class":390},[85,663,552],{"class":132},[85,665,666],{"class":390},"title",[85,668,669],{"class":132}," }}",[85,671,168],{"class":98},[85,673,444],{"class":102},[85,675,110],{"class":98},[85,677,678,680,682,685,687,691,693,695,698,700,703,705],{"class":87,"line":487},[85,679,441],{"class":98},[85,681,433],{"class":102},[85,683,684],{"class":106}," v-html",[85,686,592],{"class":132},[85,688,690],{"class":689},"s5T4v","\"",[85,692,586],{"class":390},[85,694,552],{"class":132},[85,696,697],{"class":390},"content",[85,699,690],{"class":689},[85,701,702],{"class":98},">\u003C/",[85,704,433],{"class":102},[85,706,110],{"class":98},[85,708,710,712,714],{"class":87,"line":709},13,[85,711,480],{"class":98},[85,713,646],{"class":102},[85,715,110],{"class":98},[85,717,719,721,723],{"class":87,"line":718},14,[85,720,168],{"class":98},[85,722,422],{"class":102},[85,724,110],{"class":98},[26,726,728],{"id":727},"_2-التخطيطات","2. التخطيطات",[11,730,731],{},"التخطيطات تغلف صفحاتك بهيكل مشترك (الرأس، التذييل، إلخ).",[11,733,734],{},[33,735,736],{},"layouts/default.vue",[62,738,740],{"className":79,"code":739,"language":81,"meta":70,"style":70},"\u003Ctemplate>\n  \u003Cdiv>\n    \u003Cheader>\n      \u003Cnav>\n        \u003CNuxtLink to=\"/\">الرئيسية\u003C/NuxtLink>\n        \u003CNuxtLink to=\"/about\">من نحن\u003C/NuxtLink>\n        \u003CNuxtLink to=\"/blog\">المدونة\u003C/NuxtLink>\n      \u003C/nav>\n    \u003C/header>\n    \n    \u003Cmain>\n      \u003C!-- محتوى صفحتك يأتي هنا -->\n      \u003Cslot />\n    \u003C/main>\n    \n    \u003Cfooter>\n      \u003Cp>&copy; 2025 تطبيقي\u003C/p>\n    \u003C/footer>\n  \u003C/div>\n\u003C/template>\n",[57,741,742,750,758,767,777,804,828,852,861,870,875,884,889,902,910,915,925,946,955,964],{"__ignoreMap":70},[85,743,744,746,748],{"class":87,"line":88},[85,745,99],{"class":98},[85,747,422],{"class":102},[85,749,110],{"class":98},[85,751,752,754,756],{"class":87,"line":95},[85,753,430],{"class":98},[85,755,433],{"class":102},[85,757,110],{"class":98},[85,759,760,762,765],{"class":87,"line":113},[85,761,441],{"class":98},[85,763,764],{"class":102},"header",[85,766,110],{"class":98},[85,768,769,772,775],{"class":87,"line":146},[85,770,771],{"class":98},"      \u003C",[85,773,774],{"class":102},"nav",[85,776,110],{"class":98},[85,778,779,782,785,788,790,793,795,798,800,802],{"class":87,"line":165},[85,780,781],{"class":98},"        \u003C",[85,783,784],{"class":102},"NuxtLink",[85,786,787],{"class":106}," to",[85,789,592],{"class":132},[85,791,792],{"class":271},"\"/\"",[85,794,447],{"class":98},[85,796,797],{"class":132},"الرئيسية",[85,799,168],{"class":98},[85,801,784],{"class":102},[85,803,110],{"class":98},[85,805,806,808,810,812,814,817,819,822,824,826],{"class":87,"line":410},[85,807,781],{"class":98},[85,809,784],{"class":102},[85,811,787],{"class":106},[85,813,592],{"class":132},[85,815,816],{"class":271},"\"/about\"",[85,818,447],{"class":98},[85,820,821],{"class":132},"من نحن",[85,823,168],{"class":98},[85,825,784],{"class":102},[85,827,110],{"class":98},[85,829,830,832,834,836,838,841,843,846,848,850],{"class":87,"line":417},[85,831,781],{"class":98},[85,833,784],{"class":102},[85,835,787],{"class":106},[85,837,592],{"class":132},[85,839,840],{"class":271},"\"/blog\"",[85,842,447],{"class":98},[85,844,845],{"class":132},"المدونة",[85,847,168],{"class":98},[85,849,784],{"class":102},[85,851,110],{"class":98},[85,853,854,857,859],{"class":87,"line":427},[85,855,856],{"class":98},"      \u003C/",[85,858,774],{"class":102},[85,860,110],{"class":98},[85,862,863,866,868],{"class":87,"line":438},[85,864,865],{"class":98},"    \u003C/",[85,867,764],{"class":102},[85,869,110],{"class":98},[85,871,872],{"class":87,"line":459},[85,873,874],{"class":132},"    \n",[85,876,877,879,882],{"class":87,"line":477},[85,878,441],{"class":98},[85,880,881],{"class":102},"main",[85,883,110],{"class":98},[85,885,886],{"class":87,"line":487},[85,887,888],{"class":91},"      \u003C!-- محتوى صفحتك يأتي هنا -->\n",[85,890,891,893,896,900],{"class":87,"line":709},[85,892,771],{"class":98},[85,894,895],{"class":102},"slot",[85,897,899],{"class":898},"sUwQ0"," /",[85,901,110],{"class":98},[85,903,904,906,908],{"class":87,"line":718},[85,905,865],{"class":98},[85,907,881],{"class":102},[85,909,110],{"class":98},[85,911,913],{"class":87,"line":912},15,[85,914,874],{"class":132},[85,916,918,920,923],{"class":87,"line":917},16,[85,919,441],{"class":98},[85,921,922],{"class":102},"footer",[85,924,110],{"class":98},[85,926,928,930,932,934,937,940,942,944],{"class":87,"line":927},17,[85,929,771],{"class":98},[85,931,11],{"class":102},[85,933,447],{"class":98},[85,935,936],{"class":250},"&copy;",[85,938,939],{"class":132}," 2025 تطبيقي",[85,941,168],{"class":98},[85,943,11],{"class":102},[85,945,110],{"class":98},[85,947,949,951,953],{"class":87,"line":948},18,[85,950,865],{"class":98},[85,952,922],{"class":102},[85,954,110],{"class":98},[85,956,958,960,962],{"class":87,"line":957},19,[85,959,480],{"class":98},[85,961,433],{"class":102},[85,963,110],{"class":98},[85,965,967,969,971],{"class":87,"line":966},20,[85,968,168],{"class":98},[85,970,422],{"class":102},[85,972,110],{"class":98},[11,974,975],{},"استخدمه في صفحة:",[62,977,979],{"className":79,"code":978,"language":81,"meta":70,"style":70},"\u003Cscript setup>\ndefinePageMeta({\n  layout: 'default'\n})\n\u003C/script>\n",[57,980,981,991,997,1005,1009],{"__ignoreMap":70},[85,982,983,985,987,989],{"class":87,"line":88},[85,984,99],{"class":98},[85,986,103],{"class":102},[85,988,107],{"class":106},[85,990,110],{"class":98},[85,992,993,995],{"class":87,"line":95},[85,994,382],{"class":128},[85,996,385],{"class":132},[85,998,999,1002],{"class":87,"line":113},[85,1000,1001],{"class":390},"  layout:",[85,1003,1004],{"class":271}," 'default'\n",[85,1006,1007],{"class":87,"line":146},[85,1008,399],{"class":132},[85,1010,1011,1013,1015],{"class":87,"line":165},[85,1012,168],{"class":98},[85,1014,103],{"class":102},[85,1016,110],{"class":98},[26,1018,1020],{"id":1019},"_3-المكونات","3. المكونات",[11,1022,1023,1024,1027],{},"المكونات في مجلد ",[57,1025,1026],{},"components"," مستوردة تلقائياً:",[11,1029,1030],{},[33,1031,1032],{},"components/Button.vue",[62,1034,1036],{"className":79,"code":1035,"language":81,"meta":70,"style":70},"\u003Cscript setup>\ndefineProps\u003C{\n  label: string\n  variant?: 'primary' | 'secondary'\n}>()\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cbutton :class=\"variant\">\n    {{ label }}\n  \u003C/button>\n\u003C/template>\n\n\u003Cstyle scoped>\n.primary {\n  background: #f97216;\n  color: white;\n}\n.secondary {\n  background: #6b7280;\n  color: white;\n}\n\u003C/style>\n",[57,1037,1038,1048,1056,1067,1084,1089,1097,1101,1109,1133,1144,1152,1160,1164,1176,1185,1200,1212,1217,1224,1235,1246,1251],{"__ignoreMap":70},[85,1039,1040,1042,1044,1046],{"class":87,"line":88},[85,1041,99],{"class":98},[85,1043,103],{"class":102},[85,1045,107],{"class":106},[85,1047,110],{"class":98},[85,1049,1050,1053],{"class":87,"line":95},[85,1051,1052],{"class":128},"defineProps",[85,1054,1055],{"class":132},"\u003C{\n",[85,1057,1058,1061,1063],{"class":87,"line":113},[85,1059,1060],{"class":579},"  label",[85,1062,357],{"class":124},[85,1064,1066],{"class":1065},"s6-XD"," string\n",[85,1068,1069,1072,1075,1078,1081],{"class":87,"line":146},[85,1070,1071],{"class":579},"  variant",[85,1073,1074],{"class":124},"?:",[85,1076,1077],{"class":271}," 'primary'",[85,1079,1080],{"class":124}," |",[85,1082,1083],{"class":271}," 'secondary'\n",[85,1085,1086],{"class":87,"line":165},[85,1087,1088],{"class":132},"}>()\n",[85,1090,1091,1093,1095],{"class":87,"line":410},[85,1092,168],{"class":98},[85,1094,103],{"class":102},[85,1096,110],{"class":98},[85,1098,1099],{"class":87,"line":417},[85,1100,414],{"emptyLinePlaceholder":413},[85,1102,1103,1105,1107],{"class":87,"line":427},[85,1104,99],{"class":98},[85,1106,422],{"class":102},[85,1108,110],{"class":98},[85,1110,1111,1113,1116,1119,1122,1124,1126,1129,1131],{"class":87,"line":438},[85,1112,430],{"class":98},[85,1114,1115],{"class":102},"button",[85,1117,1118],{"class":132}," :",[85,1120,1121],{"class":106},"class",[85,1123,592],{"class":132},[85,1125,690],{"class":689},[85,1127,1128],{"class":390},"variant",[85,1130,690],{"class":689},[85,1132,110],{"class":98},[85,1134,1135,1138,1141],{"class":87,"line":459},[85,1136,1137],{"class":132},"    {{ ",[85,1139,1140],{"class":390},"label",[85,1142,1143],{"class":132}," }}\n",[85,1145,1146,1148,1150],{"class":87,"line":477},[85,1147,480],{"class":98},[85,1149,1115],{"class":102},[85,1151,110],{"class":98},[85,1153,1154,1156,1158],{"class":87,"line":487},[85,1155,168],{"class":98},[85,1157,422],{"class":102},[85,1159,110],{"class":98},[85,1161,1162],{"class":87,"line":709},[85,1163,414],{"emptyLinePlaceholder":413},[85,1165,1166,1168,1171,1174],{"class":87,"line":718},[85,1167,99],{"class":98},[85,1169,1170],{"class":102},"style",[85,1172,1173],{"class":106}," scoped",[85,1175,110],{"class":98},[85,1177,1178,1182],{"class":87,"line":912},[85,1179,1181],{"class":1180},"sO3gw",".primary",[85,1183,1184],{"class":132}," {\n",[85,1186,1187,1191,1193,1197],{"class":87,"line":917},[85,1188,1190],{"class":1189},"sps74","  background",[85,1192,583],{"class":132},[85,1194,1196],{"class":1195},"sqBZk","#f97216",[85,1198,1199],{"class":132},";\n",[85,1201,1202,1205,1207,1210],{"class":87,"line":927},[85,1203,1204],{"class":1189},"  color",[85,1206,583],{"class":132},[85,1208,1209],{"class":1195},"white",[85,1211,1199],{"class":132},[85,1213,1214],{"class":87,"line":948},[85,1215,1216],{"class":132},"}\n",[85,1218,1219,1222],{"class":87,"line":957},[85,1220,1221],{"class":1180},".secondary",[85,1223,1184],{"class":132},[85,1225,1226,1228,1230,1233],{"class":87,"line":966},[85,1227,1190],{"class":1189},[85,1229,583],{"class":132},[85,1231,1232],{"class":1195},"#6b7280",[85,1234,1199],{"class":132},[85,1236,1238,1240,1242,1244],{"class":87,"line":1237},21,[85,1239,1204],{"class":1189},[85,1241,583],{"class":132},[85,1243,1209],{"class":1195},[85,1245,1199],{"class":132},[85,1247,1249],{"class":87,"line":1248},22,[85,1250,1216],{"class":132},[85,1252,1254,1256,1258],{"class":87,"line":1253},23,[85,1255,168],{"class":98},[85,1257,1170],{"class":102},[85,1259,110],{"class":98},[11,1261,1262],{},"استخدمه في أي مكان بدون استيراد:",[62,1264,1266],{"className":79,"code":1265,"language":81,"meta":70,"style":70},"\u003Ctemplate>\n  \u003CButton label=\"اضغطني\" variant=\"primary\" />\n\u003C/template>\n",[57,1267,1268,1276,1303],{"__ignoreMap":70},[85,1269,1270,1272,1274],{"class":87,"line":88},[85,1271,99],{"class":98},[85,1273,422],{"class":102},[85,1275,110],{"class":98},[85,1277,1278,1280,1283,1286,1288,1291,1294,1296,1299,1301],{"class":87,"line":95},[85,1279,430],{"class":98},[85,1281,1282],{"class":102},"Button",[85,1284,1285],{"class":106}," label",[85,1287,592],{"class":132},[85,1289,1290],{"class":271},"\"اضغطني\"",[85,1292,1293],{"class":106}," variant",[85,1295,592],{"class":132},[85,1297,1298],{"class":271},"\"primary\"",[85,1300,899],{"class":898},[85,1302,110],{"class":98},[85,1304,1305,1307,1309],{"class":87,"line":113},[85,1306,168],{"class":98},[85,1308,422],{"class":102},[85,1310,110],{"class":98},[26,1312,1314],{"id":1313},"_4-جلب-البيانات","4. جلب البيانات",[11,1316,1317],{},"يوفر Nuxt وظائف قوية لجلب البيانات:",[11,1319,1320],{},[33,1321,1322],{},"useFetch - للـ APIs الخارجية",[62,1324,1326],{"className":79,"code":1325,"language":81,"meta":70,"style":70},"\u003Cscript setup>\n// يجلب تلقائياً على الخادم والعميل\nconst { data: users, pending, error } = await useFetch('https://api.example.com/users')\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Cp v-if=\"pending\">جاري التحميل...\u003C/p>\n    \u003Cp v-else-if=\"error\">خطأ: {{ error.message }}\u003C/p>\n    \u003Cul v-else>\n      \u003Cli v-for=\"user in users\" :key=\"user.id\">\n        {{ user.name }}\n      \u003C/li>\n    \u003C/ul>\n  \u003C/div>\n\u003C/template>\n",[57,1327,1328,1338,1343,1382,1390,1394,1402,1410,1438,1475,1486,1530,1544,1552,1560,1568],{"__ignoreMap":70},[85,1329,1330,1332,1334,1336],{"class":87,"line":88},[85,1331,99],{"class":98},[85,1333,103],{"class":102},[85,1335,107],{"class":106},[85,1337,110],{"class":98},[85,1339,1340],{"class":87,"line":95},[85,1341,1342],{"class":91},"// يجلب تلقائياً على الخادم والعميل\n",[85,1344,1345,1347,1349,1351,1353,1356,1359,1362,1364,1367,1369,1371,1373,1375,1377,1380],{"class":87,"line":113},[85,1346,117],{"class":116},[85,1348,576],{"class":132},[85,1350,580],{"class":579},[85,1352,583],{"class":132},[85,1354,1355],{"class":120},"users",[85,1357,1358],{"class":132},", ",[85,1360,1361],{"class":120},"pending",[85,1363,1358],{"class":132},[85,1365,1366],{"class":120},"error",[85,1368,589],{"class":132},[85,1370,592],{"class":124},[85,1372,596],{"class":595},[85,1374,599],{"class":128},[85,1376,133],{"class":132},[85,1378,1379],{"class":271},"'https://api.example.com/users'",[85,1381,619],{"class":132},[85,1383,1384,1386,1388],{"class":87,"line":146},[85,1385,168],{"class":98},[85,1387,103],{"class":102},[85,1389,110],{"class":98},[85,1391,1392],{"class":87,"line":165},[85,1393,414],{"emptyLinePlaceholder":413},[85,1395,1396,1398,1400],{"class":87,"line":410},[85,1397,99],{"class":98},[85,1399,422],{"class":102},[85,1401,110],{"class":98},[85,1403,1404,1406,1408],{"class":87,"line":417},[85,1405,430],{"class":98},[85,1407,433],{"class":102},[85,1409,110],{"class":98},[85,1411,1412,1414,1416,1419,1421,1423,1425,1427,1429,1432,1434,1436],{"class":87,"line":427},[85,1413,441],{"class":98},[85,1415,11],{"class":102},[85,1417,1418],{"class":595}," v-if",[85,1420,592],{"class":132},[85,1422,690],{"class":689},[85,1424,1361],{"class":390},[85,1426,690],{"class":689},[85,1428,447],{"class":98},[85,1430,1431],{"class":132},"جاري التحميل...",[85,1433,168],{"class":98},[85,1435,11],{"class":102},[85,1437,110],{"class":98},[85,1439,1440,1442,1444,1447,1449,1451,1453,1455,1457,1460,1462,1464,1467,1469,1471,1473],{"class":87,"line":438},[85,1441,441],{"class":98},[85,1443,11],{"class":102},[85,1445,1446],{"class":595}," v-else-if",[85,1448,592],{"class":132},[85,1450,690],{"class":689},[85,1452,1366],{"class":390},[85,1454,690],{"class":689},[85,1456,447],{"class":98},[85,1458,1459],{"class":132},"خطأ: {{ ",[85,1461,1366],{"class":390},[85,1463,552],{"class":132},[85,1465,1466],{"class":390},"message",[85,1468,669],{"class":132},[85,1470,168],{"class":98},[85,1472,11],{"class":102},[85,1474,110],{"class":98},[85,1476,1477,1479,1481,1484],{"class":87,"line":459},[85,1478,441],{"class":98},[85,1480,38],{"class":102},[85,1482,1483],{"class":595}," v-else",[85,1485,110],{"class":98},[85,1487,1488,1490,1492,1495,1497,1499,1502,1505,1508,1510,1512,1515,1517,1519,1521,1523,1526,1528],{"class":87,"line":477},[85,1489,771],{"class":98},[85,1491,41],{"class":102},[85,1493,1494],{"class":595}," v-for",[85,1496,592],{"class":132},[85,1498,690],{"class":689},[85,1500,1501],{"class":390},"user",[85,1503,1504],{"class":116}," in",[85,1506,1507],{"class":390}," users",[85,1509,690],{"class":689},[85,1511,1118],{"class":132},[85,1513,1514],{"class":106},"key",[85,1516,592],{"class":132},[85,1518,690],{"class":689},[85,1520,1501],{"class":390},[85,1522,552],{"class":132},[85,1524,1525],{"class":390},"id",[85,1527,690],{"class":689},[85,1529,110],{"class":98},[85,1531,1532,1535,1537,1539,1542],{"class":87,"line":487},[85,1533,1534],{"class":132},"        {{ ",[85,1536,1501],{"class":390},[85,1538,552],{"class":132},[85,1540,1541],{"class":390},"name",[85,1543,1143],{"class":132},[85,1545,1546,1548,1550],{"class":87,"line":709},[85,1547,856],{"class":98},[85,1549,41],{"class":102},[85,1551,110],{"class":98},[85,1553,1554,1556,1558],{"class":87,"line":718},[85,1555,865],{"class":98},[85,1557,38],{"class":102},[85,1559,110],{"class":98},[85,1561,1562,1564,1566],{"class":87,"line":912},[85,1563,480],{"class":98},[85,1565,433],{"class":102},[85,1567,110],{"class":98},[85,1569,1570,1572,1574],{"class":87,"line":917},[85,1571,168],{"class":98},[85,1573,422],{"class":102},[85,1575,110],{"class":98},[11,1577,1578],{},[33,1579,1580],{},"useAsyncData - للمزيد من التحكم",[62,1582,1584],{"className":79,"code":1583,"language":81,"meta":70,"style":70},"\u003Cscript setup>\nconst { data: products } = await useAsyncData('products', async () => {\n  // منطق جلب مخصص\n  const response = await $fetch('/api/products', {\n    params: { category: 'electronics' }\n  })\n  return response.data\n})\n\u003C/script>\n",[57,1585,1586,1596,1636,1641,1664,1680,1685,1697,1701],{"__ignoreMap":70},[85,1587,1588,1590,1592,1594],{"class":87,"line":88},[85,1589,99],{"class":98},[85,1591,103],{"class":102},[85,1593,107],{"class":106},[85,1595,110],{"class":98},[85,1597,1598,1600,1602,1604,1606,1609,1611,1613,1615,1618,1620,1623,1625,1628,1631,1634],{"class":87,"line":95},[85,1599,117],{"class":116},[85,1601,576],{"class":132},[85,1603,580],{"class":579},[85,1605,583],{"class":132},[85,1607,1608],{"class":120},"products",[85,1610,589],{"class":132},[85,1612,592],{"class":124},[85,1614,596],{"class":595},[85,1616,1617],{"class":128}," useAsyncData",[85,1619,133],{"class":132},[85,1621,1622],{"class":271},"'products'",[85,1624,1358],{"class":132},[85,1626,1627],{"class":116},"async",[85,1629,1630],{"class":132}," () ",[85,1632,1633],{"class":116},"=>",[85,1635,1184],{"class":132},[85,1637,1638],{"class":87,"line":113},[85,1639,1640],{"class":91},"  // منطق جلب مخصص\n",[85,1642,1643,1646,1649,1651,1653,1656,1658,1661],{"class":87,"line":146},[85,1644,1645],{"class":116},"  const",[85,1647,1648],{"class":120}," response",[85,1650,125],{"class":124},[85,1652,596],{"class":595},[85,1654,1655],{"class":128}," $fetch",[85,1657,133],{"class":132},[85,1659,1660],{"class":271},"'/api/products'",[85,1662,1663],{"class":132},", {\n",[85,1665,1666,1669,1671,1674,1677],{"class":87,"line":165},[85,1667,1668],{"class":390},"    params:",[85,1670,576],{"class":132},[85,1672,1673],{"class":390},"category:",[85,1675,1676],{"class":271}," 'electronics'",[85,1678,1679],{"class":132}," }\n",[85,1681,1682],{"class":87,"line":410},[85,1683,1684],{"class":132},"  })\n",[85,1686,1687,1690,1692,1694],{"class":87,"line":417},[85,1688,1689],{"class":595},"  return",[85,1691,1648],{"class":390},[85,1693,552],{"class":132},[85,1695,1696],{"class":390},"data\n",[85,1698,1699],{"class":87,"line":427},[85,1700,399],{"class":132},[85,1702,1703,1705,1707],{"class":87,"line":438},[85,1704,168],{"class":98},[85,1706,103],{"class":102},[85,1708,110],{"class":98},[11,1710,1711],{},[33,1712,1713],{},"useLazyFetch - للتحميل من جانب العميل",[62,1715,1717],{"className":79,"code":1716,"language":81,"meta":70,"style":70},"\u003Cscript setup>\n// لا يحجب رسم الصفحة\nconst { data, pending } = useLazyFetch('/api/heavy-data')\n\u003C/script>\n",[57,1718,1719,1729,1734,1760],{"__ignoreMap":70},[85,1720,1721,1723,1725,1727],{"class":87,"line":88},[85,1722,99],{"class":98},[85,1724,103],{"class":102},[85,1726,107],{"class":106},[85,1728,110],{"class":98},[85,1730,1731],{"class":87,"line":95},[85,1732,1733],{"class":91},"// لا يحجب رسم الصفحة\n",[85,1735,1736,1738,1740,1742,1744,1746,1748,1750,1753,1755,1758],{"class":87,"line":113},[85,1737,117],{"class":116},[85,1739,576],{"class":132},[85,1741,580],{"class":120},[85,1743,1358],{"class":132},[85,1745,1361],{"class":120},[85,1747,589],{"class":132},[85,1749,592],{"class":124},[85,1751,1752],{"class":128}," useLazyFetch",[85,1754,133],{"class":132},[85,1756,1757],{"class":271},"'/api/heavy-data'",[85,1759,619],{"class":132},[85,1761,1762,1764,1766],{"class":87,"line":146},[85,1763,168],{"class":98},[85,1765,103],{"class":102},[85,1767,110],{"class":98},[26,1769,1771],{"id":1770},"_5-مسارات-الخادم-api","5. مسارات الخادم (API)",[11,1773,1774,1775,357],{},"أنشئ نقاط نهاية خلفية في مجلد ",[57,1776,1777],{},"server/api",[11,1779,1780],{},[33,1781,1782],{},"server/api/hello.ts",[62,1784,1788],{"className":1785,"code":1786,"language":1787,"meta":70,"style":70},"language-typescript shiki shiki-themes github-light dark-plus dark-plus","export default defineEventHandler(() => {\n  return {\n    message: 'مرحباً من الخادم!',\n    timestamp: new Date().toISOString()\n  }\n})\n","typescript",[57,1789,1790,1808,1814,1825,1844,1849],{"__ignoreMap":70},[85,1791,1792,1795,1798,1801,1804,1806],{"class":87,"line":88},[85,1793,1794],{"class":595},"export",[85,1796,1797],{"class":595}," default",[85,1799,1800],{"class":128}," defineEventHandler",[85,1802,1803],{"class":132},"(() ",[85,1805,1633],{"class":116},[85,1807,1184],{"class":132},[85,1809,1810,1812],{"class":87,"line":95},[85,1811,1689],{"class":595},[85,1813,1184],{"class":132},[85,1815,1816,1819,1822],{"class":87,"line":113},[85,1817,1818],{"class":390},"    message:",[85,1820,1821],{"class":271}," 'مرحباً من الخادم!'",[85,1823,1824],{"class":132},",\n",[85,1826,1827,1830,1833,1836,1839,1842],{"class":87,"line":146},[85,1828,1829],{"class":390},"    timestamp:",[85,1831,1832],{"class":116}," new",[85,1834,1835],{"class":128}," Date",[85,1837,1838],{"class":132},"().",[85,1840,1841],{"class":128},"toISOString",[85,1843,538],{"class":132},[85,1845,1846],{"class":87,"line":165},[85,1847,1848],{"class":132},"  }\n",[85,1850,1851],{"class":87,"line":410},[85,1852,399],{"class":132},[11,1854,1855],{},"وصولها من الواجهة الأمامية:",[62,1857,1859],{"className":79,"code":1858,"language":81,"meta":70,"style":70},"\u003Cscript setup>\nconst { data } = await useFetch('/api/hello')\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cp>{{ data.message }}\u003C/p>\n\u003C/template>\n",[57,1860,1861,1871,1894,1902,1906,1914,1938],{"__ignoreMap":70},[85,1862,1863,1865,1867,1869],{"class":87,"line":88},[85,1864,99],{"class":98},[85,1866,103],{"class":102},[85,1868,107],{"class":106},[85,1870,110],{"class":98},[85,1872,1873,1875,1877,1879,1881,1883,1885,1887,1889,1892],{"class":87,"line":95},[85,1874,117],{"class":116},[85,1876,576],{"class":132},[85,1878,580],{"class":120},[85,1880,589],{"class":132},[85,1882,592],{"class":124},[85,1884,596],{"class":595},[85,1886,599],{"class":128},[85,1888,133],{"class":132},[85,1890,1891],{"class":271},"'/api/hello'",[85,1893,619],{"class":132},[85,1895,1896,1898,1900],{"class":87,"line":113},[85,1897,168],{"class":98},[85,1899,103],{"class":102},[85,1901,110],{"class":98},[85,1903,1904],{"class":87,"line":146},[85,1905,414],{"emptyLinePlaceholder":413},[85,1907,1908,1910,1912],{"class":87,"line":165},[85,1909,99],{"class":98},[85,1911,422],{"class":102},[85,1913,110],{"class":98},[85,1915,1916,1918,1920,1922,1924,1926,1928,1930,1932,1934,1936],{"class":87,"line":410},[85,1917,430],{"class":98},[85,1919,11],{"class":102},[85,1921,447],{"class":98},[85,1923,659],{"class":132},[85,1925,580],{"class":390},[85,1927,552],{"class":132},[85,1929,1466],{"class":390},[85,1931,669],{"class":132},[85,1933,168],{"class":98},[85,1935,11],{"class":102},[85,1937,110],{"class":98},[85,1939,1940,1942,1944],{"class":87,"line":417},[85,1941,168],{"class":98},[85,1943,422],{"class":102},[85,1945,110],{"class":98},[11,1947,1948],{},[33,1949,1950],{},"مع المعاملات:",[11,1952,1953],{},[33,1954,1955,1956,1958],{},"server/api/users/",[85,1957,1525],{},".ts",[62,1960,1962],{"className":1785,"code":1961,"language":1787,"meta":70,"style":70},"export default defineEventHandler((event) => {\n  const id = getRouterParam(event, 'id')\n  \n  // جلب المستخدم من قاعدة البيانات\n  return {\n    id,\n    name: 'John Doe',\n    email: 'john@example.com'\n  }\n})\n",[57,1963,1964,1985,2008,2013,2018,2024,2031,2041,2049,2053],{"__ignoreMap":70},[85,1965,1966,1968,1970,1972,1975,1978,1981,1983],{"class":87,"line":88},[85,1967,1794],{"class":595},[85,1969,1797],{"class":595},[85,1971,1800],{"class":128},[85,1973,1974],{"class":132},"((",[85,1976,1977],{"class":579},"event",[85,1979,1980],{"class":132},") ",[85,1982,1633],{"class":116},[85,1984,1184],{"class":132},[85,1986,1987,1989,1992,1994,1997,1999,2001,2003,2006],{"class":87,"line":95},[85,1988,1645],{"class":116},[85,1990,1991],{"class":120}," id",[85,1993,125],{"class":124},[85,1995,1996],{"class":128}," getRouterParam",[85,1998,133],{"class":132},[85,2000,1977],{"class":390},[85,2002,1358],{"class":132},[85,2004,2005],{"class":271},"'id'",[85,2007,619],{"class":132},[85,2009,2010],{"class":87,"line":113},[85,2011,2012],{"class":132},"  \n",[85,2014,2015],{"class":87,"line":146},[85,2016,2017],{"class":91},"  // جلب المستخدم من قاعدة البيانات\n",[85,2019,2020,2022],{"class":87,"line":165},[85,2021,1689],{"class":595},[85,2023,1184],{"class":132},[85,2025,2026,2029],{"class":87,"line":410},[85,2027,2028],{"class":390},"    id",[85,2030,1824],{"class":132},[85,2032,2033,2036,2039],{"class":87,"line":417},[85,2034,2035],{"class":390},"    name:",[85,2037,2038],{"class":271}," 'John Doe'",[85,2040,1824],{"class":132},[85,2042,2043,2046],{"class":87,"line":427},[85,2044,2045],{"class":390},"    email:",[85,2047,2048],{"class":271}," 'john@example.com'\n",[85,2050,2051],{"class":87,"line":438},[85,2052,1848],{"class":132},[85,2054,2055],{"class":87,"line":459},[85,2056,399],{"class":132},[26,2058,2060],{"id":2059},"_6-الوظائف","6. الوظائف",[11,2062,2063],{},"الوظائف هي وظائف قابلة لإعادة الاستخدام تغلف منطق تفاعلي:",[11,2065,2066],{},[33,2067,2068],{},"composables/useCounter.ts",[62,2070,2072],{"className":1785,"code":2071,"language":1787,"meta":70,"style":70},"export const useCounter = (initialValue = 0) => {\n  const count = ref(initialValue)\n  \n  const increment = () => count.value++\n  const decrement = () => count.value--\n  const reset = () => count.value = initialValue\n  \n  return {\n    count: readonly(count),\n    increment,\n    decrement,\n    reset\n  }\n}\n",[57,2073,2074,2103,2119,2123,2146,2168,2192,2196,2202,2218,2225,2232,2237,2241],{"__ignoreMap":70},[85,2075,2076,2078,2081,2084,2086,2089,2092,2094,2097,2099,2101],{"class":87,"line":88},[85,2077,1794],{"class":595},[85,2079,2080],{"class":116}," const",[85,2082,2083],{"class":128}," useCounter",[85,2085,125],{"class":124},[85,2087,2088],{"class":132}," (",[85,2090,2091],{"class":579},"initialValue",[85,2093,125],{"class":124},[85,2095,2096],{"class":136}," 0",[85,2098,1980],{"class":132},[85,2100,1633],{"class":116},[85,2102,1184],{"class":132},[85,2104,2105,2107,2109,2111,2113,2115,2117],{"class":87,"line":95},[85,2106,1645],{"class":116},[85,2108,121],{"class":120},[85,2110,125],{"class":124},[85,2112,129],{"class":128},[85,2114,133],{"class":132},[85,2116,2091],{"class":390},[85,2118,619],{"class":132},[85,2120,2121],{"class":87,"line":113},[85,2122,2012],{"class":132},[85,2124,2125,2127,2130,2132,2134,2136,2138,2140,2143],{"class":87,"line":146},[85,2126,1645],{"class":116},[85,2128,2129],{"class":128}," increment",[85,2131,125],{"class":124},[85,2133,1630],{"class":132},[85,2135,1633],{"class":116},[85,2137,121],{"class":390},[85,2139,552],{"class":132},[85,2141,2142],{"class":390},"value",[85,2144,2145],{"class":124},"++\n",[85,2147,2148,2150,2153,2155,2157,2159,2161,2163,2165],{"class":87,"line":165},[85,2149,1645],{"class":116},[85,2151,2152],{"class":128}," decrement",[85,2154,125],{"class":124},[85,2156,1630],{"class":132},[85,2158,1633],{"class":116},[85,2160,121],{"class":390},[85,2162,552],{"class":132},[85,2164,2142],{"class":390},[85,2166,2167],{"class":124},"--\n",[85,2169,2170,2172,2175,2177,2179,2181,2183,2185,2187,2189],{"class":87,"line":410},[85,2171,1645],{"class":116},[85,2173,2174],{"class":128}," reset",[85,2176,125],{"class":124},[85,2178,1630],{"class":132},[85,2180,1633],{"class":116},[85,2182,121],{"class":390},[85,2184,552],{"class":132},[85,2186,2142],{"class":390},[85,2188,125],{"class":124},[85,2190,2191],{"class":390}," initialValue\n",[85,2193,2194],{"class":87,"line":417},[85,2195,2012],{"class":132},[85,2197,2198,2200],{"class":87,"line":427},[85,2199,1689],{"class":595},[85,2201,1184],{"class":132},[85,2203,2204,2207,2210,2212,2215],{"class":87,"line":438},[85,2205,2206],{"class":390},"    count:",[85,2208,2209],{"class":128}," readonly",[85,2211,133],{"class":132},[85,2213,2214],{"class":390},"count",[85,2216,2217],{"class":132},"),\n",[85,2219,2220,2223],{"class":87,"line":459},[85,2221,2222],{"class":390},"    increment",[85,2224,1824],{"class":132},[85,2226,2227,2230],{"class":87,"line":477},[85,2228,2229],{"class":390},"    decrement",[85,2231,1824],{"class":132},[85,2233,2234],{"class":87,"line":487},[85,2235,2236],{"class":390},"    reset\n",[85,2238,2239],{"class":87,"line":709},[85,2240,1848],{"class":132},[85,2242,2243],{"class":87,"line":718},[85,2244,1216],{"class":132},[11,2246,2247],{},"استخدمها في أي مكان:",[62,2249,2251],{"className":79,"code":2250,"language":81,"meta":70,"style":70},"\u003Cscript setup>\nconst { count, increment, decrement } = useCounter(10)\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Cp>العدد: {{ count }}\u003C/p>\n    \u003Cbutton @click=\"increment\">+\u003C/button>\n    \u003Cbutton @click=\"decrement\">-\u003C/button>\n  \u003C/div>\n\u003C/template>\n",[57,2252,2253,2263,2294,2302,2306,2314,2322,2343,2374,2403,2411],{"__ignoreMap":70},[85,2254,2255,2257,2259,2261],{"class":87,"line":88},[85,2256,99],{"class":98},[85,2258,103],{"class":102},[85,2260,107],{"class":106},[85,2262,110],{"class":98},[85,2264,2265,2267,2269,2271,2273,2276,2278,2281,2283,2285,2287,2289,2292],{"class":87,"line":95},[85,2266,117],{"class":116},[85,2268,576],{"class":132},[85,2270,2214],{"class":120},[85,2272,1358],{"class":132},[85,2274,2275],{"class":120},"increment",[85,2277,1358],{"class":132},[85,2279,2280],{"class":120},"decrement",[85,2282,589],{"class":132},[85,2284,592],{"class":124},[85,2286,2083],{"class":128},[85,2288,133],{"class":132},[85,2290,2291],{"class":136},"10",[85,2293,619],{"class":132},[85,2295,2296,2298,2300],{"class":87,"line":113},[85,2297,168],{"class":98},[85,2299,103],{"class":102},[85,2301,110],{"class":98},[85,2303,2304],{"class":87,"line":146},[85,2305,414],{"emptyLinePlaceholder":413},[85,2307,2308,2310,2312],{"class":87,"line":165},[85,2309,99],{"class":98},[85,2311,422],{"class":102},[85,2313,110],{"class":98},[85,2315,2316,2318,2320],{"class":87,"line":410},[85,2317,430],{"class":98},[85,2319,433],{"class":102},[85,2321,110],{"class":98},[85,2323,2324,2326,2328,2330,2333,2335,2337,2339,2341],{"class":87,"line":417},[85,2325,441],{"class":98},[85,2327,11],{"class":102},[85,2329,447],{"class":98},[85,2331,2332],{"class":132},"العدد: {{ ",[85,2334,2214],{"class":390},[85,2336,669],{"class":132},[85,2338,168],{"class":98},[85,2340,11],{"class":102},[85,2342,110],{"class":98},[85,2344,2345,2347,2349,2352,2355,2357,2359,2361,2363,2365,2368,2370,2372],{"class":87,"line":427},[85,2346,441],{"class":98},[85,2348,1115],{"class":102},[85,2350,2351],{"class":132}," @",[85,2353,2354],{"class":106},"click",[85,2356,592],{"class":132},[85,2358,690],{"class":689},[85,2360,2275],{"class":390},[85,2362,690],{"class":689},[85,2364,447],{"class":98},[85,2366,2367],{"class":132},"+",[85,2369,168],{"class":98},[85,2371,1115],{"class":102},[85,2373,110],{"class":98},[85,2375,2376,2378,2380,2382,2384,2386,2388,2390,2392,2394,2397,2399,2401],{"class":87,"line":438},[85,2377,441],{"class":98},[85,2379,1115],{"class":102},[85,2381,2351],{"class":132},[85,2383,2354],{"class":106},[85,2385,592],{"class":132},[85,2387,690],{"class":689},[85,2389,2280],{"class":390},[85,2391,690],{"class":689},[85,2393,447],{"class":98},[85,2395,2396],{"class":132},"-",[85,2398,168],{"class":98},[85,2400,1115],{"class":102},[85,2402,110],{"class":98},[85,2404,2405,2407,2409],{"class":87,"line":459},[85,2406,480],{"class":98},[85,2408,433],{"class":102},[85,2410,110],{"class":98},[85,2412,2413,2415,2417],{"class":87,"line":477},[85,2414,168],{"class":98},[85,2416,422],{"class":102},[85,2418,110],{"class":98},[18,2420,2422],{"id":2421},"وحدات-nuxt-الأساسية","وحدات Nuxt الأساسية",[11,2424,2425],{},"وسع Nuxt بوحدات رسمية ومجتمعية:",[26,2427,2429],{"id":2428},"tailwind-css","Tailwind CSS",[62,2431,2433],{"className":238,"code":2432,"language":240,"meta":70,"style":70},"npm install @nuxtjs/tailwindcss\n",[57,2434,2435],{"__ignoreMap":70},[85,2436,2437,2439,2442],{"class":87,"line":88},[85,2438,310],{"class":128},[85,2440,2441],{"class":271}," install",[85,2443,2444],{"class":271}," @nuxtjs/tailwindcss\n",[11,2446,2447],{},[33,2448,2449],{},"nuxt.config.ts",[62,2451,2453],{"className":1785,"code":2452,"language":1787,"meta":70,"style":70},"export default defineNuxtConfig({\n  modules: ['@nuxtjs/tailwindcss']\n})\n",[57,2454,2455,2466,2480],{"__ignoreMap":70},[85,2456,2457,2459,2461,2464],{"class":87,"line":88},[85,2458,1794],{"class":595},[85,2460,1797],{"class":595},[85,2462,2463],{"class":128}," defineNuxtConfig",[85,2465,385],{"class":132},[85,2467,2468,2471,2474,2477],{"class":87,"line":95},[85,2469,2470],{"class":390},"  modules:",[85,2472,2473],{"class":132}," [",[85,2475,2476],{"class":271},"'@nuxtjs/tailwindcss'",[85,2478,2479],{"class":132},"]\n",[85,2481,2482],{"class":87,"line":113},[85,2483,399],{"class":132},[26,2485,2487],{"id":2486},"nuxt-content-للمدوناتالوثائق","Nuxt Content (للمدونات/الوثائق)",[62,2489,2491],{"className":238,"code":2490,"language":240,"meta":70,"style":70},"npm install @nuxt/content\n",[57,2492,2493],{"__ignoreMap":70},[85,2494,2495,2497,2499],{"class":87,"line":88},[85,2496,310],{"class":128},[85,2498,2441],{"class":271},[85,2500,2501],{"class":271}," @nuxt/content\n",[11,2503,2504],{},"رائع للمحتوى المبني على markdown:",[62,2506,2508],{"className":79,"code":2507,"language":81,"meta":70,"style":70},"\u003Cscript setup>\nconst { data: article } = await useAsyncData('article', () => \n  queryContent('/blog/my-post').findOne()\n)\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CContentDoc :value=\"article\" />\n\u003C/template>\n",[57,2509,2510,2520,2553,2571,2575,2583,2587,2595,2617],{"__ignoreMap":70},[85,2511,2512,2514,2516,2518],{"class":87,"line":88},[85,2513,99],{"class":98},[85,2515,103],{"class":102},[85,2517,107],{"class":106},[85,2519,110],{"class":98},[85,2521,2522,2524,2526,2528,2530,2532,2534,2536,2538,2540,2542,2545,2548,2550],{"class":87,"line":95},[85,2523,117],{"class":116},[85,2525,576],{"class":132},[85,2527,580],{"class":579},[85,2529,583],{"class":132},[85,2531,646],{"class":120},[85,2533,589],{"class":132},[85,2535,592],{"class":124},[85,2537,596],{"class":595},[85,2539,1617],{"class":128},[85,2541,133],{"class":132},[85,2543,2544],{"class":271},"'article'",[85,2546,2547],{"class":132},", () ",[85,2549,1633],{"class":116},[85,2551,2552],{"class":132}," \n",[85,2554,2555,2558,2560,2563,2566,2569],{"class":87,"line":113},[85,2556,2557],{"class":128},"  queryContent",[85,2559,133],{"class":132},[85,2561,2562],{"class":271},"'/blog/my-post'",[85,2564,2565],{"class":132},").",[85,2567,2568],{"class":128},"findOne",[85,2570,538],{"class":132},[85,2572,2573],{"class":87,"line":146},[85,2574,619],{"class":132},[85,2576,2577,2579,2581],{"class":87,"line":165},[85,2578,168],{"class":98},[85,2580,103],{"class":102},[85,2582,110],{"class":98},[85,2584,2585],{"class":87,"line":410},[85,2586,414],{"emptyLinePlaceholder":413},[85,2588,2589,2591,2593],{"class":87,"line":417},[85,2590,99],{"class":98},[85,2592,422],{"class":102},[85,2594,110],{"class":98},[85,2596,2597,2599,2602,2604,2606,2608,2610,2612,2614],{"class":87,"line":427},[85,2598,430],{"class":98},[85,2600,2601],{"class":102},"ContentDoc",[85,2603,1118],{"class":132},[85,2605,2142],{"class":106},[85,2607,592],{"class":132},[85,2609,690],{"class":689},[85,2611,646],{"class":390},[85,2613,690],{"class":689},[85,2615,2616],{"class":98}," />\n",[85,2618,2619,2621,2623],{"class":87,"line":438},[85,2620,168],{"class":98},[85,2622,422],{"class":102},[85,2624,110],{"class":98},[26,2626,2628],{"id":2627},"nuxt-image","Nuxt Image",[62,2630,2632],{"className":238,"code":2631,"language":240,"meta":70,"style":70},"npm install @nuxt/image\n",[57,2633,2634],{"__ignoreMap":70},[85,2635,2636,2638,2640],{"class":87,"line":88},[85,2637,310],{"class":128},[85,2639,2441],{"class":271},[85,2641,2642],{"class":271}," @nuxt/image\n",[11,2644,2645],{},"تحسين الصور التلقائي:",[62,2647,2649],{"className":79,"code":2648,"language":81,"meta":70,"style":70},"\u003Ctemplate>\n  \u003CNuxtImg src=\"/photo.jpg\" width=\"400\" height=\"300\" />\n\u003C/template>\n",[57,2650,2651,2659,2692],{"__ignoreMap":70},[85,2652,2653,2655,2657],{"class":87,"line":88},[85,2654,99],{"class":98},[85,2656,422],{"class":102},[85,2658,110],{"class":98},[85,2660,2661,2663,2666,2669,2671,2674,2677,2679,2682,2685,2687,2690],{"class":87,"line":95},[85,2662,430],{"class":98},[85,2664,2665],{"class":102},"NuxtImg",[85,2667,2668],{"class":106}," src",[85,2670,592],{"class":132},[85,2672,2673],{"class":271},"\"/photo.jpg\"",[85,2675,2676],{"class":106}," width",[85,2678,592],{"class":132},[85,2680,2681],{"class":271},"\"400\"",[85,2683,2684],{"class":106}," height",[85,2686,592],{"class":132},[85,2688,2689],{"class":271},"\"300\"",[85,2691,2616],{"class":98},[85,2693,2694,2696,2698],{"class":87,"line":113},[85,2695,168],{"class":98},[85,2697,422],{"class":102},[85,2699,110],{"class":98},[18,2701,2703],{"id":2702},"البناء-والنشر","البناء والنشر",[26,2705,2706],{"id":2706},"التطوير",[62,2708,2710],{"className":238,"code":2709,"language":240,"meta":70,"style":70},"npm run dev\n",[57,2711,2712],{"__ignoreMap":70},[85,2713,2714,2716,2718],{"class":87,"line":88},[85,2715,310],{"class":128},[85,2717,320],{"class":271},[85,2719,323],{"class":271},[26,2721,2723],{"id":2722},"بناء-الإنتاج","بناء الإنتاج",[62,2725,2727],{"className":238,"code":2726,"language":240,"meta":70,"style":70},"npm run build\n",[57,2728,2729],{"__ignoreMap":70},[85,2730,2731,2733,2735],{"class":87,"line":88},[85,2732,310],{"class":128},[85,2734,320],{"class":271},[85,2736,2737],{"class":271}," build\n",[11,2739,2740,2741],{},"ينشئ بناء محسن في ",[57,2742,2743],{},".output",[26,2745,2747],{"id":2746},"معاينة-بناء-الإنتاج","معاينة بناء الإنتاج",[62,2749,2751],{"className":238,"code":2750,"language":240,"meta":70,"style":70},"npm run preview\n",[57,2752,2753],{"__ignoreMap":70},[85,2754,2755,2757,2759],{"class":87,"line":88},[85,2756,310],{"class":128},[85,2758,320],{"class":271},[85,2760,2761],{"class":271}," preview\n",[26,2763,2765],{"id":2764},"التوليد-الثابت","التوليد الثابت",[11,2767,2768],{},"للمواقع الثابتة تماماً:",[62,2770,2772],{"className":238,"code":2771,"language":240,"meta":70,"style":70},"npm run generate\n",[57,2773,2774],{"__ignoreMap":70},[85,2775,2776,2778,2780],{"class":87,"line":88},[85,2777,310],{"class":128},[85,2779,320],{"class":271},[85,2781,2782],{"class":271}," generate\n",[26,2784,2786],{"id":2785},"منصات-النشر","منصات النشر",[11,2788,2789],{},"يعمل Nuxt في كل مكان:",[11,2791,2792],{},[33,2793,2794],{},"Vercel:",[62,2796,2798],{"className":238,"code":2797,"language":240,"meta":70,"style":70},"npm run build\n# نشر مع Vercel CLI أو ربط مستودع git\n",[57,2799,2800,2808],{"__ignoreMap":70},[85,2801,2802,2804,2806],{"class":87,"line":88},[85,2803,310],{"class":128},[85,2805,320],{"class":271},[85,2807,2737],{"class":271},[85,2809,2810],{"class":87,"line":95},[85,2811,2812],{"class":91},"# نشر مع Vercel CLI أو ربط مستودع git\n",[11,2814,2815],{},[33,2816,2817],{},"Netlify:",[62,2819,2821],{"className":238,"code":2820,"language":240,"meta":70,"style":70},"npm run generate  # للثابت\n# أو\nnpm run build     # للـ SSR\n",[57,2822,2823,2835,2840],{"__ignoreMap":70},[85,2824,2825,2827,2829,2832],{"class":87,"line":88},[85,2826,310],{"class":128},[85,2828,320],{"class":271},[85,2830,2831],{"class":271}," generate",[85,2833,2834],{"class":91},"  # للثابت\n",[85,2836,2837],{"class":87,"line":95},[85,2838,2839],{"class":91},"# أو\n",[85,2841,2842,2844,2846,2849],{"class":87,"line":113},[85,2843,310],{"class":128},[85,2845,320],{"class":271},[85,2847,2848],{"class":271}," build",[85,2850,2851],{"class":91},"     # للـ SSR\n",[11,2853,2854,2857,2858],{},[33,2855,2856],{},"Cloudflare Pages:","\nنشر تلقائي من git مع أمر البناء: ",[57,2859,2860],{},"npm run build",[11,2862,2863],{},[33,2864,2865],{},"خادمك الخاص:",[62,2867,2869],{"className":238,"code":2868,"language":240,"meta":70,"style":70},"npm run build\nnode .output/server/index.mjs\n",[57,2870,2871,2879],{"__ignoreMap":70},[85,2872,2873,2875,2877],{"class":87,"line":88},[85,2874,310],{"class":128},[85,2876,320],{"class":271},[85,2878,2737],{"class":271},[85,2880,2881,2883],{"class":87,"line":95},[85,2882,247],{"class":128},[85,2884,2885],{"class":271}," .output/server/index.mjs\n",[18,2887,2889],{"id":2888},"أفضل-الممارسات","أفضل الممارسات",[26,2891,2893],{"id":2892},"_1-استخدم-typescript","1. استخدم TypeScript",[11,2895,2896],{},"فعل الوضع الصارم لأمان نوع أفضل:",[62,2898,2900],{"className":1785,"code":2899,"language":1787,"meta":70,"style":70},"// nuxt.config.ts\nexport default defineNuxtConfig({\n  typescript: {\n    strict: true,\n    typeCheck: true\n  }\n})\n",[57,2901,2902,2907,2917,2924,2934,2942,2946],{"__ignoreMap":70},[85,2903,2904],{"class":87,"line":88},[85,2905,2906],{"class":91},"// nuxt.config.ts\n",[85,2908,2909,2911,2913,2915],{"class":87,"line":95},[85,2910,1794],{"class":595},[85,2912,1797],{"class":595},[85,2914,2463],{"class":128},[85,2916,385],{"class":132},[85,2918,2919,2922],{"class":87,"line":113},[85,2920,2921],{"class":390},"  typescript:",[85,2923,1184],{"class":132},[85,2925,2926,2929,2932],{"class":87,"line":146},[85,2927,2928],{"class":390},"    strict:",[85,2930,2931],{"class":250}," true",[85,2933,1824],{"class":132},[85,2935,2936,2939],{"class":87,"line":165},[85,2937,2938],{"class":390},"    typeCheck:",[85,2940,2941],{"class":250}," true\n",[85,2943,2944],{"class":87,"line":410},[85,2945,1848],{"class":132},[85,2947,2948],{"class":87,"line":417},[85,2949,399],{"class":132},[26,2951,2953],{"id":2952},"_2-حسين-الصور","2. حسين الصور",[11,2955,2956,2957,2960,2961,2964],{},"استخدم دائماً ",[57,2958,2959],{},"\u003CNuxtImg>"," أو ",[57,2962,2963],{},"\u003CNuxtPicture>"," للتحسين التلقائي.",[26,2966,2968],{"id":2967},"_3-معالجة-الأخطاء","3. معالجة الأخطاء",[11,2970,2971],{},"أنشئ صفحة خطأ مخصصة:",[11,2973,2974],{},[33,2975,2976],{},"error.vue",[62,2978,2980],{"className":79,"code":2979,"language":81,"meta":70,"style":70},"\u003Cscript setup>\nconst props = defineProps\u003C{\n  error: {\n    statusCode: number\n    message: string\n  }\n}>()\n\nconst handleError = () => clearError({ redirect: '/' })\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ch1>{{ error.statusCode }}\u003C/h1>\n    \u003Cp>{{ error.message }}\u003C/p>\n    \u003Cbutton @click=\"handleError\">العودة للرئيسية\u003C/button>\n  \u003C/div>\n\u003C/template>\n",[57,2981,2982,2992,3006,3015,3025,3034,3038,3042,3046,3074,3082,3086,3094,3102,3127,3151,3181,3189],{"__ignoreMap":70},[85,2983,2984,2986,2988,2990],{"class":87,"line":88},[85,2985,99],{"class":98},[85,2987,103],{"class":102},[85,2989,107],{"class":106},[85,2991,110],{"class":98},[85,2993,2994,2996,2999,3001,3004],{"class":87,"line":95},[85,2995,117],{"class":116},[85,2997,2998],{"class":120}," props",[85,3000,125],{"class":124},[85,3002,3003],{"class":128}," defineProps",[85,3005,1055],{"class":132},[85,3007,3008,3011,3013],{"class":87,"line":113},[85,3009,3010],{"class":579},"  error",[85,3012,357],{"class":124},[85,3014,1184],{"class":132},[85,3016,3017,3020,3022],{"class":87,"line":146},[85,3018,3019],{"class":579},"    statusCode",[85,3021,357],{"class":124},[85,3023,3024],{"class":1065}," number\n",[85,3026,3027,3030,3032],{"class":87,"line":165},[85,3028,3029],{"class":579},"    message",[85,3031,357],{"class":124},[85,3033,1066],{"class":1065},[85,3035,3036],{"class":87,"line":410},[85,3037,1848],{"class":132},[85,3039,3040],{"class":87,"line":417},[85,3041,1088],{"class":132},[85,3043,3044],{"class":87,"line":427},[85,3045,414],{"emptyLinePlaceholder":413},[85,3047,3048,3050,3053,3055,3057,3059,3062,3065,3068,3071],{"class":87,"line":438},[85,3049,117],{"class":116},[85,3051,3052],{"class":128}," handleError",[85,3054,125],{"class":124},[85,3056,1630],{"class":132},[85,3058,1633],{"class":116},[85,3060,3061],{"class":128}," clearError",[85,3063,3064],{"class":132},"({ ",[85,3066,3067],{"class":390},"redirect:",[85,3069,3070],{"class":271}," '/'",[85,3072,3073],{"class":132}," })\n",[85,3075,3076,3078,3080],{"class":87,"line":459},[85,3077,168],{"class":98},[85,3079,103],{"class":102},[85,3081,110],{"class":98},[85,3083,3084],{"class":87,"line":477},[85,3085,414],{"emptyLinePlaceholder":413},[85,3087,3088,3090,3092],{"class":87,"line":487},[85,3089,99],{"class":98},[85,3091,422],{"class":102},[85,3093,110],{"class":98},[85,3095,3096,3098,3100],{"class":87,"line":709},[85,3097,430],{"class":98},[85,3099,433],{"class":102},[85,3101,110],{"class":98},[85,3103,3104,3106,3108,3110,3112,3114,3116,3119,3121,3123,3125],{"class":87,"line":718},[85,3105,441],{"class":98},[85,3107,444],{"class":102},[85,3109,447],{"class":98},[85,3111,659],{"class":132},[85,3113,1366],{"class":390},[85,3115,552],{"class":132},[85,3117,3118],{"class":390},"statusCode",[85,3120,669],{"class":132},[85,3122,168],{"class":98},[85,3124,444],{"class":102},[85,3126,110],{"class":98},[85,3128,3129,3131,3133,3135,3137,3139,3141,3143,3145,3147,3149],{"class":87,"line":912},[85,3130,441],{"class":98},[85,3132,11],{"class":102},[85,3134,447],{"class":98},[85,3136,659],{"class":132},[85,3138,1366],{"class":390},[85,3140,552],{"class":132},[85,3142,1466],{"class":390},[85,3144,669],{"class":132},[85,3146,168],{"class":98},[85,3148,11],{"class":102},[85,3150,110],{"class":98},[85,3152,3153,3155,3157,3159,3161,3163,3165,3168,3170,3172,3175,3177,3179],{"class":87,"line":917},[85,3154,441],{"class":98},[85,3156,1115],{"class":102},[85,3158,2351],{"class":132},[85,3160,2354],{"class":106},[85,3162,592],{"class":132},[85,3164,690],{"class":689},[85,3166,3167],{"class":390},"handleError",[85,3169,690],{"class":689},[85,3171,447],{"class":98},[85,3173,3174],{"class":132},"العودة للرئيسية",[85,3176,168],{"class":98},[85,3178,1115],{"class":102},[85,3180,110],{"class":98},[85,3182,3183,3185,3187],{"class":87,"line":927},[85,3184,480],{"class":98},[85,3186,433],{"class":102},[85,3188,110],{"class":98},[85,3190,3191,3193,3195],{"class":87,"line":948},[85,3192,168],{"class":98},[85,3194,422],{"class":102},[85,3196,110],{"class":98},[26,3198,3200],{"id":3199},"_4-تحسين-seo","4. تحسين SEO",[11,3202,3203,3204,3207],{},"استخدم ",[57,3205,3206],{},"useSeoMeta"," لـ SEO أفضل:",[62,3209,3211],{"className":79,"code":3210,"language":81,"meta":70,"style":70},"\u003Cscript setup>\nuseSeoMeta({\n  title: 'صفحتي الرائعة',\n  description: 'هذه الصفحة رائعة',\n  ogImage: 'https://example.com/image.jpg',\n  twitterCard: 'summary_large_image'\n})\n\u003C/script>\n",[57,3212,3213,3223,3229,3238,3248,3258,3266,3270],{"__ignoreMap":70},[85,3214,3215,3217,3219,3221],{"class":87,"line":88},[85,3216,99],{"class":98},[85,3218,103],{"class":102},[85,3220,107],{"class":106},[85,3222,110],{"class":98},[85,3224,3225,3227],{"class":87,"line":95},[85,3226,3206],{"class":128},[85,3228,385],{"class":132},[85,3230,3231,3233,3236],{"class":87,"line":113},[85,3232,391],{"class":390},[85,3234,3235],{"class":271}," 'صفحتي الرائعة'",[85,3237,1824],{"class":132},[85,3239,3240,3243,3246],{"class":87,"line":146},[85,3241,3242],{"class":390},"  description:",[85,3244,3245],{"class":271}," 'هذه الصفحة رائعة'",[85,3247,1824],{"class":132},[85,3249,3250,3253,3256],{"class":87,"line":165},[85,3251,3252],{"class":390},"  ogImage:",[85,3254,3255],{"class":271}," 'https://example.com/image.jpg'",[85,3257,1824],{"class":132},[85,3259,3260,3263],{"class":87,"line":410},[85,3261,3262],{"class":390},"  twitterCard:",[85,3264,3265],{"class":271}," 'summary_large_image'\n",[85,3267,3268],{"class":87,"line":417},[85,3269,399],{"class":132},[85,3271,3272,3274,3276],{"class":87,"line":427},[85,3273,168],{"class":98},[85,3275,103],{"class":102},[85,3277,110],{"class":98},[26,3279,3281],{"id":3280},"_5-الأداء","5. الأداء",[38,3283,3284,3290,3293,3299],{},[41,3285,3203,3286,3289],{},[57,3287,3288],{},"useLazyFetch"," للبيانات غير الحساسة",[41,3291,3292],{},"طبق ترقيم الصفحات لمجموعات البيانات الكبيرة",[41,3294,3203,3295,3298],{},[57,3296,3297],{},"\u003CClientOnly>"," للمكونات التي لا تحتاج SSR",[41,3300,3301],{},"قم بتحميل الصور والمكونات الثقيلة بطريقة lazy",[18,3303,3305],{"id":3304},"الأنماط-الشائعة","الأنماط الشائعة",[26,3307,3308],{"id":3308},"المصادقة",[62,3310,3312],{"className":1785,"code":3311,"language":1787,"meta":70,"style":70},"// composables/useAuth.ts\nexport const useAuth = () => {\n  const user = useState('user', () => null)\n  \n  const login = async (credentials) => {\n    const data = await $fetch('/api/auth/login', {\n      method: 'POST',\n      body: credentials\n    })\n    user.value = data.user\n  }\n  \n  const logout = () => {\n    user.value = null\n  }\n  \n  return { user, login, logout }\n}\n",[57,3313,3314,3319,3336,3362,3366,3389,3410,3420,3428,3433,3451,3455,3459,3474,3487,3491,3495,3515],{"__ignoreMap":70},[85,3315,3316],{"class":87,"line":88},[85,3317,3318],{"class":91},"// composables/useAuth.ts\n",[85,3320,3321,3323,3325,3328,3330,3332,3334],{"class":87,"line":95},[85,3322,1794],{"class":595},[85,3324,2080],{"class":116},[85,3326,3327],{"class":128}," useAuth",[85,3329,125],{"class":124},[85,3331,1630],{"class":132},[85,3333,1633],{"class":116},[85,3335,1184],{"class":132},[85,3337,3338,3340,3343,3345,3348,3350,3353,3355,3357,3360],{"class":87,"line":113},[85,3339,1645],{"class":116},[85,3341,3342],{"class":120}," user",[85,3344,125],{"class":124},[85,3346,3347],{"class":128}," useState",[85,3349,133],{"class":132},[85,3351,3352],{"class":271},"'user'",[85,3354,2547],{"class":132},[85,3356,1633],{"class":116},[85,3358,3359],{"class":250}," null",[85,3361,619],{"class":132},[85,3363,3364],{"class":87,"line":146},[85,3365,2012],{"class":132},[85,3367,3368,3370,3373,3375,3378,3380,3383,3385,3387],{"class":87,"line":165},[85,3369,1645],{"class":116},[85,3371,3372],{"class":128}," login",[85,3374,125],{"class":124},[85,3376,3377],{"class":116}," async",[85,3379,2088],{"class":132},[85,3381,3382],{"class":579},"credentials",[85,3384,1980],{"class":132},[85,3386,1633],{"class":116},[85,3388,1184],{"class":132},[85,3390,3391,3394,3397,3399,3401,3403,3405,3408],{"class":87,"line":410},[85,3392,3393],{"class":116},"    const",[85,3395,3396],{"class":120}," data",[85,3398,125],{"class":124},[85,3400,596],{"class":595},[85,3402,1655],{"class":128},[85,3404,133],{"class":132},[85,3406,3407],{"class":271},"'/api/auth/login'",[85,3409,1663],{"class":132},[85,3411,3412,3415,3418],{"class":87,"line":417},[85,3413,3414],{"class":390},"      method:",[85,3416,3417],{"class":271}," 'POST'",[85,3419,1824],{"class":132},[85,3421,3422,3425],{"class":87,"line":427},[85,3423,3424],{"class":390},"      body:",[85,3426,3427],{"class":390}," credentials\n",[85,3429,3430],{"class":87,"line":438},[85,3431,3432],{"class":132},"    })\n",[85,3434,3435,3438,3440,3442,3444,3446,3448],{"class":87,"line":459},[85,3436,3437],{"class":390},"    user",[85,3439,552],{"class":132},[85,3441,2142],{"class":390},[85,3443,125],{"class":124},[85,3445,3396],{"class":390},[85,3447,552],{"class":132},[85,3449,3450],{"class":390},"user\n",[85,3452,3453],{"class":87,"line":477},[85,3454,1848],{"class":132},[85,3456,3457],{"class":87,"line":487},[85,3458,2012],{"class":132},[85,3460,3461,3463,3466,3468,3470,3472],{"class":87,"line":709},[85,3462,1645],{"class":116},[85,3464,3465],{"class":128}," logout",[85,3467,125],{"class":124},[85,3469,1630],{"class":132},[85,3471,1633],{"class":116},[85,3473,1184],{"class":132},[85,3475,3476,3478,3480,3482,3484],{"class":87,"line":718},[85,3477,3437],{"class":390},[85,3479,552],{"class":132},[85,3481,2142],{"class":390},[85,3483,125],{"class":124},[85,3485,3486],{"class":250}," null\n",[85,3488,3489],{"class":87,"line":912},[85,3490,1848],{"class":132},[85,3492,3493],{"class":87,"line":917},[85,3494,2012],{"class":132},[85,3496,3497,3499,3501,3503,3505,3508,3510,3513],{"class":87,"line":927},[85,3498,1689],{"class":595},[85,3500,576],{"class":132},[85,3502,1501],{"class":390},[85,3504,1358],{"class":132},[85,3506,3507],{"class":390},"login",[85,3509,1358],{"class":132},[85,3511,3512],{"class":390},"logout",[85,3514,1679],{"class":132},[85,3516,3517],{"class":87,"line":948},[85,3518,1216],{"class":132},[26,3520,3522],{"id":3521},"المسارات-المحمية","المسارات المحمية",[62,3524,3526],{"className":1785,"code":3525,"language":1787,"meta":70,"style":70},"// middleware/auth.ts\nexport default defineNuxtRouteMiddleware((to, from) => {\n  const { user } = useAuth()\n  \n  if (!user.value) {\n    return navigateTo('/login')\n  }\n})\n",[57,3527,3528,3533,3558,3574,3578,3597,3612,3616],{"__ignoreMap":70},[85,3529,3530],{"class":87,"line":88},[85,3531,3532],{"class":91},"// middleware/auth.ts\n",[85,3534,3535,3537,3539,3542,3544,3547,3549,3552,3554,3556],{"class":87,"line":95},[85,3536,1794],{"class":595},[85,3538,1797],{"class":595},[85,3540,3541],{"class":128}," defineNuxtRouteMiddleware",[85,3543,1974],{"class":132},[85,3545,3546],{"class":579},"to",[85,3548,1358],{"class":132},[85,3550,3551],{"class":579},"from",[85,3553,1980],{"class":132},[85,3555,1633],{"class":116},[85,3557,1184],{"class":132},[85,3559,3560,3562,3564,3566,3568,3570,3572],{"class":87,"line":113},[85,3561,1645],{"class":116},[85,3563,576],{"class":132},[85,3565,1501],{"class":120},[85,3567,589],{"class":132},[85,3569,592],{"class":124},[85,3571,3327],{"class":128},[85,3573,538],{"class":132},[85,3575,3576],{"class":87,"line":146},[85,3577,2012],{"class":132},[85,3579,3580,3583,3585,3588,3590,3592,3594],{"class":87,"line":165},[85,3581,3582],{"class":595},"  if",[85,3584,2088],{"class":132},[85,3586,3587],{"class":124},"!",[85,3589,1501],{"class":390},[85,3591,552],{"class":132},[85,3593,2142],{"class":390},[85,3595,3596],{"class":132},") {\n",[85,3598,3599,3602,3605,3607,3610],{"class":87,"line":410},[85,3600,3601],{"class":595},"    return",[85,3603,3604],{"class":128}," navigateTo",[85,3606,133],{"class":132},[85,3608,3609],{"class":271},"'/login'",[85,3611,619],{"class":132},[85,3613,3614],{"class":87,"line":417},[85,3615,1848],{"class":132},[85,3617,3618],{"class":87,"line":427},[85,3619,399],{"class":132},[11,3621,3622],{},"استخدم في صفحة:",[62,3624,3626],{"className":79,"code":3625,"language":81,"meta":70,"style":70},"\u003Cscript setup>\ndefinePageMeta({\n  middleware: 'auth'\n})\n\u003C/script>\n",[57,3627,3628,3638,3644,3652,3656],{"__ignoreMap":70},[85,3629,3630,3632,3634,3636],{"class":87,"line":88},[85,3631,99],{"class":98},[85,3633,103],{"class":102},[85,3635,107],{"class":106},[85,3637,110],{"class":98},[85,3639,3640,3642],{"class":87,"line":95},[85,3641,382],{"class":128},[85,3643,385],{"class":132},[85,3645,3646,3649],{"class":87,"line":113},[85,3647,3648],{"class":390},"  middleware:",[85,3650,3651],{"class":271}," 'auth'\n",[85,3653,3654],{"class":87,"line":146},[85,3655,399],{"class":132},[85,3657,3658,3660,3662],{"class":87,"line":165},[85,3659,168],{"class":98},[85,3661,103],{"class":102},[85,3663,110],{"class":98},[18,3665,3667],{"id":3666},"استكشاف-الأخطاء","استكشاف الأخطاء",[11,3669,3670],{},[33,3671,3672],{},"المنفذ مستخدم بالفعل:",[62,3674,3676],{"className":238,"code":3675,"language":240,"meta":70,"style":70},"npm run dev -- --port 3001\n",[57,3677,3678],{"__ignoreMap":70},[85,3679,3680,3682,3684,3687,3690,3693],{"class":87,"line":88},[85,3681,310],{"class":128},[85,3683,320],{"class":271},[85,3685,3686],{"class":271}," dev",[85,3688,3689],{"class":250}," --",[85,3691,3692],{"class":250}," --port",[85,3694,3695],{"class":136}," 3001\n",[11,3697,3698],{},[33,3699,3700],{},"مسح ذاكرة Nuxt المؤقتة:",[62,3702,3704],{"className":238,"code":3703,"language":240,"meta":70,"style":70},"rm -rf .nuxt\nnpm run dev\n",[57,3705,3706,3717],{"__ignoreMap":70},[85,3707,3708,3711,3714],{"class":87,"line":88},[85,3709,3710],{"class":128},"rm",[85,3712,3713],{"class":250}," -rf",[85,3715,3716],{"class":271}," .nuxt\n",[85,3718,3719,3721,3723],{"class":87,"line":95},[85,3720,310],{"class":128},[85,3722,320],{"class":271},[85,3724,323],{"class":271},[11,3726,3727],{},[33,3728,3729],{},"أخطاء TypeScript:",[62,3731,3733],{"className":238,"code":3732,"language":240,"meta":70,"style":70},"npm run postinstall  # إعادة توليد الأنواع\n",[57,3734,3735],{"__ignoreMap":70},[85,3736,3737,3739,3741,3744],{"class":87,"line":88},[85,3738,310],{"class":128},[85,3740,320],{"class":271},[85,3742,3743],{"class":271}," postinstall",[85,3745,3746],{"class":91},"  # إعادة توليد الأنواع\n",[18,3748,3750],{"id":3749},"ما-الجديد-في-nuxt-4","ما الجديد في Nuxt 4؟",[11,3752,3753],{},"Nuxt 4 (قيد التطوير حالياً) يجلب تحسينات مثيرة:",[38,3755,3756,3759,3762,3765,3768],{},[41,3757,3758],{},"أداء أفضل مع رسم خادم محسن",[41,3760,3761],{},"دعم TypeScript محسن",[41,3763,3764],{},"تجربة مطور محسنة",[41,3766,3767],{},"أحجام حزم أصغر",[41,3769,3770],{},"توافق أفضل مع أحدث ميزات Vue",[11,3772,3773],{},"للتحضير لـ Nuxt 4، حافظ على تحديث مشاريع Nuxt 3 الخاصة بك واتبع دليل الترحيل عند إصدار Nuxt 4.",[18,3775,3777],{"id":3776},"الخطوات-التالية","الخطوات التالية",[11,3779,3780],{},"الآن بعد فهم الأساسيات:",[3782,3783,3784,3790,3803,3814,3830],"ol",{},[41,3785,3786,3789],{},[33,3787,3788],{},"بنِ مشروعاً",": ابدأ بمدونة أو معرض أعمال بسيط",[41,3791,3792,3795,3796],{},[33,3793,3794],{},"استكشف الوحدات",": تحقق من دليل ",[3797,3798,3802],"a",{"href":3799,"rel":3800},"https://nuxt.com/modules",[3801],"nofollow","وحدات Nuxt",[41,3804,3805,583,3808,3813],{},[33,3806,3807],{},"اقرأ الوثائق",[3797,3809,3812],{"href":3810,"rel":3811},"https://nuxt.com",[3801],"الوثائق الرسمية"," ممتازة",[41,3815,3816,583,3819,3824,3825],{},[33,3817,3818],{},"انضم للمجتمع",[3797,3820,3823],{"href":3821,"rel":3822},"https://discord.com/invite/nuxt",[3801],"Discord","، ",[3797,3826,3829],{"href":3827,"rel":3828},"https://github.com/nuxt/nuxt/discussions",[3801],"مناقشات GitHub",[41,3831,3832,3835],{},[33,3833,3834],{},"شاهد الدروس",": العديد من الدروس المرئية الرائعة متوفرة",[18,3837,3838],{"id":3838},"الخاتمة",[11,3840,3841],{},"يجعل Nuxt بناء تطبيقات الويب الحديثة ممتعاً ومنتجاً. هيكله الرأيي، ميزاته القوية، وتجربة المطور الممتازة تجعله خياراً أعلى لمطوري Vue.",[11,3843,3844],{},"ابدأ صغيراً، جرب الميزات، وتدريجياً بنِ تطبيقات أكثر تعقيداً. أفضل طريقة لتعلم Nuxt هي البناء به!",[11,3846,3847],{},"برمجة سعيدة! 🚀",[1170,3849,3850],{},"html pre.shiki code .s56mj, html code.shiki .s56mj{--shiki-light:#6A737D;--shiki-default:#6A9955;--shiki-dark:#6A9955}html pre.shiki code .sffyN, html code.shiki .sffyN{--shiki-light:#24292E;--shiki-default:#808080;--shiki-dark:#808080}html pre.shiki code .ssFZ1, html code.shiki .ssFZ1{--shiki-light:#22863A;--shiki-default:#569CD6;--shiki-dark:#569CD6}html pre.shiki code .sFcZJ, html code.shiki .sFcZJ{--shiki-light:#6F42C1;--shiki-default:#9CDCFE;--shiki-dark:#9CDCFE}html pre.shiki code .s5uUr, html code.shiki .s5uUr{--shiki-light:#D73A49;--shiki-default:#569CD6;--shiki-dark:#569CD6}html pre.shiki code .sToQf, html code.shiki .sToQf{--shiki-light:#005CC5;--shiki-default:#4FC1FF;--shiki-dark:#4FC1FF}html pre.shiki code .s1p9p, html code.shiki .s1p9p{--shiki-light:#D73A49;--shiki-default:#D4D4D4;--shiki-dark:#D4D4D4}html pre.shiki code .svuFb, html code.shiki .svuFb{--shiki-light:#6F42C1;--shiki-default:#DCDCAA;--shiki-dark:#DCDCAA}html pre.shiki code .sG4b4, html code.shiki .sG4b4{--shiki-light:#24292E;--shiki-default:#D4D4D4;--shiki-dark:#D4D4D4}html pre.shiki code .seC34, html code.shiki .seC34{--shiki-light:#005CC5;--shiki-default:#B5CEA8;--shiki-dark:#B5CEA8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sZiGn, html code.shiki .sZiGn{--shiki-light:#24292E;--shiki-default:#9CDCFE;--shiki-dark:#9CDCFE}html pre.shiki code .sGDl4, html code.shiki .sGDl4{--shiki-light:#032F62;--shiki-default:#CE9178;--shiki-dark:#CE9178}html pre.shiki code .s9TRk, html code.shiki .s9TRk{--shiki-light:#E36209;--shiki-default:#9CDCFE;--shiki-dark:#9CDCFE}html pre.shiki code .sEkCa, html code.shiki .sEkCa{--shiki-light:#D73A49;--shiki-default:#C586C0;--shiki-dark:#C586C0}html pre.shiki code .se2iQ, html code.shiki .se2iQ{--shiki-light:#032F62;--shiki-default:#569CD6;--shiki-dark:#569CD6}html pre.shiki code .s5T4v, html code.shiki .s5T4v{--shiki-light:#032F62;--shiki-default:#D4D4D4;--shiki-dark:#D4D4D4}html pre.shiki code .sUwQ0, html code.shiki .sUwQ0{--shiki-light:#B31D28;--shiki-light-font-style:italic;--shiki-default:#F44747;--shiki-default-font-style:inherit;--shiki-dark:#F44747;--shiki-dark-font-style:inherit}html pre.shiki code .s7v1m, html code.shiki .s7v1m{--shiki-light:#005CC5;--shiki-default:#569CD6;--shiki-dark:#569CD6}html pre.shiki code .s6-XD, html code.shiki .s6-XD{--shiki-light:#005CC5;--shiki-default:#4EC9B0;--shiki-dark:#4EC9B0}html pre.shiki code .sO3gw, html code.shiki .sO3gw{--shiki-light:#6F42C1;--shiki-default:#D7BA7D;--shiki-dark:#D7BA7D}html pre.shiki code .sps74, html code.shiki .sps74{--shiki-light:#005CC5;--shiki-default:#9CDCFE;--shiki-dark:#9CDCFE}html pre.shiki code .sqBZk, html code.shiki .sqBZk{--shiki-light:#005CC5;--shiki-default:#CE9178;--shiki-dark:#CE9178}html pre.shiki code .sNX3-, html code.shiki .sNX3-{--shiki-light:#005CC5;--shiki-default:#DCDCAA;--shiki-dark:#DCDCAA}",{"title":70,"searchDepth":113,"depth":113,"links":3852},[3853,3856,3861,3869,3874,3881,3888,3892,3893,3894,3895],{"id":20,"depth":95,"text":21,"children":3854},[3855],{"id":28,"depth":113,"text":29},{"id":227,"depth":95,"text":228,"children":3857},[3858,3859,3860],{"id":231,"depth":113,"text":232},{"id":254,"depth":113,"text":255},{"id":333,"depth":113,"text":334},{"id":346,"depth":95,"text":347,"children":3862},[3863,3864,3865,3866,3867,3868],{"id":350,"depth":113,"text":351},{"id":727,"depth":113,"text":728},{"id":1019,"depth":113,"text":1020},{"id":1313,"depth":113,"text":1314},{"id":1770,"depth":113,"text":1771},{"id":2059,"depth":113,"text":2060},{"id":2421,"depth":95,"text":2422,"children":3870},[3871,3872,3873],{"id":2428,"depth":113,"text":2429},{"id":2486,"depth":113,"text":2487},{"id":2627,"depth":113,"text":2628},{"id":2702,"depth":95,"text":2703,"children":3875},[3876,3877,3878,3879,3880],{"id":2706,"depth":113,"text":2706},{"id":2722,"depth":113,"text":2723},{"id":2746,"depth":113,"text":2747},{"id":2764,"depth":113,"text":2765},{"id":2785,"depth":113,"text":2786},{"id":2888,"depth":95,"text":2889,"children":3882},[3883,3884,3885,3886,3887],{"id":2892,"depth":113,"text":2893},{"id":2952,"depth":113,"text":2953},{"id":2967,"depth":113,"text":2968},{"id":3199,"depth":113,"text":3200},{"id":3280,"depth":113,"text":3281},{"id":3304,"depth":95,"text":3305,"children":3889},[3890,3891],{"id":3308,"depth":113,"text":3308},{"id":3521,"depth":113,"text":3522},{"id":3666,"depth":95,"text":3667},{"id":3749,"depth":95,"text":3750},{"id":3776,"depth":95,"text":3777},{"id":3838,"depth":95,"text":3838},"development","تعلم كيفية بناء تطبيقات ويب سريعة وحديثة مع Nuxt 3 وNuxt 4. دليل شامل يغطي الإعداد، الميزات الرئيسية، أفضل الممارسات، وأمثلة واقعية.","md","https://images.unsplash.com/photo-1559028012-481c04fa702d?q=80&w=1200",false,"ar",{"excerpt":3903},{"type":8,"value":3904},[3905,3907,3909,3911],[11,3906,13],{},[11,3908,16],{},[18,3910,21],{"id":20},[11,3912,24],{},"/albda-ma-nuxt","2024-05-01",{"title":5,"description":3897},"البدء-مع-nuxt",[3918,81,3919,1787,3920,3921],"nuxt","javascript","web-development","ssr","2025-10-10","Lw9VBxaxsneCZCZ4osRPhVZMzK0OzHDoWrQpq-Rsa4U",{"id":3925,"avatar":3926,"bio":3927,"extension":3898,"github":3928,"linkedin":3929,"locale":3901,"meta":3930,"name":3932,"role":3937,"slug":6,"stem":3938,"twitter":3939,"website":3940,"__hash__":3941},"authors_ar/ar/authors/رائد-البحري.md","/images/raed-bahri.avif","مدير منتجات ومطور متخصص في التطبيقات العربية أولاً","lord007tn","raed-bahri",{"path":3931,"title":3932,"description":70,"body":3933},"/ar/authors/raed-albhry","رائد البحري",{"type":8,"value":3934,"toc":3935},[],{"title":70,"searchDepth":113,"depth":113,"links":3936},[],"المؤسس و مطور منتجات","ar/authors/رائد-البحري","El_Raed_Bahri","https://raedbahri.com","pMOe7fRPZ-myQQEq3wdjao2Xvtyy74dyBfL4UTF1K2s",1761775956105]