Svelte / المتوسط: مسارات Kit وسياسة بيانات الخادم / الدرس 7
توجيه ملفات Kit والتخطيطات وبيانات الصفحة الحالية
ركب ملفات المسار والواجهة المشتركة مع حفظ الإدخال الديناميكي وإعادة استعمال المكون والسياسة الحالية.
في هذه الصفحة
أهداف الدرس
- اشرح أدوار +page و+layout و+page.server ومقاطع المسار الديناميكية.
- تجنب اعتبار إعادة التخطيط أو نسخة البيانات الأولية تفويضاً حالياً.
تحدد اتفاقات الملفات حدود التطبيق
تربط Kit المجلد بالصفحة والخادم: تعرض +page.svelte وتحيط +layout.svelte وتقدم +page.server.js عملاً خادمياً وتعرف +server.js المداخل. تقدم [id] إدخالاً لا صلاحية. تنظم مجموعات التخطيط دون مقطع ظاهر، فراجع المسار والشجرة الناتجين لا كل اسم مجلد. تختلف دلالة الصفحة والمدخل ولو خَدما القدرة نفسها؛ وضح الوصول والرد. لا يعني أن رابطاً لا يظهر في التنقل أن ملفه غير قابل للاستدعاء، كما لا يفرض اسم مجموعة مثل private أهليةً على مصدر البيانات أو عمليات الكتابة داخلها.
اعرض الأبناء بعقد تخطيط Svelte 5 المختار
يمثل الجزء +layout.svelte بنمط runes تستقبل children وتعرض snippet حول تنقل مشترك. يفترض أن مترجم Kit يقدم الخصائص، ولا يتحقق التخطيط من الجلسة أو يمنح أذونات load والفعل. تختلف صياغة slot القديمة فلا تخلط الشرح. لم يترجم مسار أو تخطيط أوsnippet. اختبر الموضع والتداخل والأبناء بالإصدارات المختارة قبل الاعتماد على التركيب. يوضح الجزء شكل مشاركة الواجهة فقط، ويحتاج قراراً منفصلاً إن كان عنوان التنقل أو اسم المستخدم المعروض مناسباً لكل جمهور يصل إلى التخطيط.
<script>
let { children } = $props();
</script>
<nav aria-label="Main"><a href="/courses">Courses</a></nav>
<main>{@render children()}</main>
children هي snippet يقدمها الإطار، ولم تنتج شجرة مسار أو SSR.
المكون المعاد استعماله لا يعيد كل سطر تهيئة
قد تعيد Kit استعمال الصفحة والتخطيط وتحدث data، فيبقى متغير هيئ مرة قديماً. اقرأ تفاعلياً أو اشتق، ولا تنشئ مسودة منفصلة دون قواعد إعادة وتسوية. ليست load التخطيط نقطة تفويض لكل فعل؛ احم البيانات والكتابة ولو عرض شرط دخول. اختبر الانتقال بين معرفين بالمكون نفسه لا إعادة تحميل فقط. يساعد ذلك على تمييز احتفاظ واجهة مقصود من خلل قراءة خاصية؛ فقد يكون المصدر أعاد السجل الجديد صحيحاً بينما ظل العنوان المحلي نسخة من الأول لأن المكون لم يهيأ مجدداً.
تحقق محلياً من هوية مسار معلنة
يسمح الشرط باتفاق slug صغير ويرفض الشبيه بمسار، وهو صياغة مجال لا موجه Kit أو فاك URL. للممتد والاختياري شكل يحتاج عقده. قد يسمي الصحيح مقرراً خاصاً أو لمستأجر آخر؛ افصل الصياغة والهوية والأهلية. لا تحول المعامل مباشرة لملف أو مرشح غير مقيد لأنه طابق مقطعاً. تثبت التأكيدات أمثلة هذا الاتفاق فقط؛ ويبقى على الصفحة تحديد هل تعرض not-found آمنة أو خطأ مختلفاً داخلياً عندما لا يسمح المجال بالسجل المشار إليه.
function slug(value){return typeof value==="string" && value.length<=60 && /^[a-z]+(?:-[a-z]+)*$/.test(value);}
console.assert(slug("kit-routing"));
console.assert(!slug("../private"));
console.assert(!slug("kit--routing"));
ينجح الاسم المعلن وترفض صيغتان دون توجيه أو فك أو تفويض.
راجع العنوان والخيارات والخطأ كعقد مسار واحد
احفظ عينات التداخل والمفقود والمجموعة والطريقة والأساس المضبوط. وافق SSR والتحضير مع عمومية المحتوى واستقلاله عن الطلب؛ يختلف العام الثابت والخاص. اتبع عقد الخطأ والتحويل. ينفذ المقرر الشرط فقط دون بناء أو تحميل خادم أو إعادة تخطيط أو متصفح. تحقق معزولاً مأذوناً واحفظ الضبط مع النتائج لا أسماء المجلدات. لا يثبت نجاح تحليل اسم أن نقل ملف layout أبقى المسار القديم أو أن رابطاً مباشراً سيحصل على الأهلية نفسها التي كانت تطبق خلال تدفق التنقل السابق.
الأخطاء الشائعة وإصلاحها
يبقى عنوان محلي من معرف المسار السابق
- لماذا يحدث؟
- نسخت تهيئة مرة واحدة بيانات مكون أعيد استعماله.
- كيف تصلحه؟
- اقرأ الخصائص الحالية تفاعلياً أو عرف إعادة مسودة مقصودة.
- كيف تتجنب تكراره؟
- اختبر التنقل بين المعرفات دون تحميل كامل.
يسمى شرط دخول التخطيط حماية للمدخل
- لماذا يحدث؟
- حل تركيب الواجهة المشتركة محل سياسة المصدر والكتابة الحالية.
- كيف تصلحه؟
- افرض السلطة بكل مدخل خادم وخدمة مجال مشتركة.
- كيف تتجنب تكراره؟
- اختبر الأفعال والمداخل المباشرة بهويات ممنوعة.
تعد مجموعة مسارات بادئة URL ظاهرة
- لماذا يحدث؟
- اختلطت مجلدات التنظيم بمقاطع العنوان الناتجة.
- كيف تصلحه؟
- افحص الشجرة العامة واتفاقات الملفات الفعلية.
- كيف تتجنب تكراره؟
- احفظ عينات الروابط عند إعادة تنظيم المجلدات.
اختبر فهمك
1. هل يثبت slug صحيح حق المستدعي في قراءة المقرر؟
اعرض الحل المشروح
لا. يثبت اتفاق صياغة فقط، وتحتاج الهوية الحالية والمستأجر وظهور الكائن فحوص مجال. اختبر المعرف نفسه بمسموح وممنوع، وتحقق من المدخل المباشر لا رابط ظاهر أو تخطيط محمي.
2. لماذا قد تقادم نسخة data.title المأخوذة مرة عند التنقل؟
اعرض الحل المشروح
قد تعيد Kit استعمال المثيل وتحدث data دون تهيئة؛ ليست النسخة البدائية علاقة حية تلقائياً. استخدم قراءة حالية أو مشتقاً، وخصص المسودة المستقلة لتحرير مقصود بتسوية موثقة.
أهم ما تعلمته
- يشكل توجيه الملفات وإعادة المكونات سلوك الصفحة معاً.
- لا يعوض التخطيط وصياغة المسار سلطة الخادم.