محتويات الدورة

Vue / المتوسط: حالة الميزة وملكية الأثر / الدرس 8

Vue Router والحالة المملوكة للمسار

نمذج التنقل كعقد تاريخ ومعاملات وافصل تغير المسار عن تفويض الخادم.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • عرّف المسارات والتنقل المسمى وافتراضات التاريخ.
  • استجب لإعادة استخدام مكوّن المسار دون فقد الملكية.

حدد الوجهات ورحلة المستخدم

يربط الموجه المكان بالمكوّن والتاريخ. يحدد المعامل عادة سجلاً تحمله البيانات لا كائناً منسوخاً ضخماً. يشمل العقد الرجوع والدخول المباشر والغائب وغير الصالح. يستخدم الدرس عائلة Vue Router 4 المتوافقة مع Vue 3 مع تثبيت إصدار مناسب لا أحدث متغير. يوفر RouterLink وRouterView حد التنقل والعرض ويثبت المدخل الإضافة قبل الربط.

اختر سلوك التاريخ صراحة

يستخدم المثال تاريخ الذاكرة لبيئة اختبار مضبوطة. يحتاج تكامل SSR الفعلي موجهاً جديداً لكل طلب بدلاً من نسخة المختبر المشتركة. لا يقرأ تاريخ الذاكرة URL المتصفح تلقائياً ويحتاج تنقلاً أولياً. يستخدم المتصفح غالباً تاريخ الويب مع fallback للاستضافة للمسار العميق وهو مطلب منفصل. لتاريخ hash مفاضلات أخرى. المكونات SFC يعرّفها التطبيق لا الموجه. احفظ الغياب والخطأ بحد واضح ولا تفترض صحة كل مطابق.

javascript جدول Vue Router 4 بتاريخ الذاكرة
import { createRouter, createMemoryHistory } from "vue-router"
import NoteList from "./NoteList.vue"
import NoteDetail from "./NoteDetail.vue"

export const router = createRouter({
  history: createMemoryHistory(),
  routes: [
    { path: "/notes", name: "notes", component: NoteList },
    { path: "/notes/:id", name: "note", component: NoteDetail }
  ]
})

يثبت التطبيق الموجه ويوفر المكوّنين ويدفع موقعاً أولياً بإعداده المضبوط. هو جزء إعداد لا تطبيق عامل ولا ينفذ تنقلاً أو طلباً أو خادماً.

راقب المعامل الذي يحدد المهمة

قد يعاد استخدام النسخة عند تغير id فلا يكفي mounted للتحميل. يكشف useRoute المسار التفاعلي؛ راقب المعامل أو حارس التحديث المناسب لا الكائن كله. تحقق وعالج الغياب وأبطل طلب القديم كي لا يستبدل الجديد. قد تختلف دلالة query وhash فلا تحفزا عملاً غير مرتبط لتغير الكائن فقط.

مرر اقتراح تنقل ضيقاً

يسمح الاسم بترميز المعامل المعلن ويجنب تركيب الصياغة يدوياً. يقرأ المثال id للعرض ويقترح سجلاً اصطناعياً بلا جلب. يمكن للصف إرسال المعرّف لأب يملك المسار ليختبر بدونه. عالج نتيجة التنقل عند أهمية الرفض أو التحويل وحدد التكرار صراحة لا النقر المتكرر.

vue حد تنقل واعٍ بالمسار
<script setup>
import { computed } from "vue"
import { useRoute, useRouter } from "vue-router"
const route = useRoute()
const router = useRouter()
const currentId = computed(() => String(route.params.id ?? ""))
function openExample() {
  return router.push({ name: "note", params: { id: "n2" } })
}
</script>

<template>
  <p>Current note: {{ currentId }}</p>
  <button type="button" @click="openExample">Open example note</button>
</template>

يتطلب تثبيت الموجه المتوافق والمسار المسمى السابق. يتبع المعرّف المحسوب المعامل، ولم ينفذ التنقل أو تاريخ المتصفح لهذا المثال.

افصل سياسة التنقل وضبط الوصول

تنسق الحراسة التنقل والمسودة والتحويل ولا تمنع طلب API المباشر؛ يحمي الخادم المورد. يحتاج الدخول المباشر التحميل والخطأ والغائب. حدّث عنوان المستند والتركيز لتفهم اللوحة والقارئ التنقل ولا تفترض إعلان URL وحده. اختبر التاريخ بموجه مضبوط وروابط ممثلة وافحص الاستضافة منفصلة وفق العملية.

الأخطاء الشائعة وإصلاحها

يعرض تغيير id السجل القديم

لماذا يحدث؟
أعيدت النسخة وحُمّل عند الربط فقط.
كيف تصلحه؟
راقب المعامل وأبطل القديم.
كيف تتجنب تكراره؟
اختبر الانتقال بين معرّفات المسار نفسه.

تفشل الروابط المتداخلة عند التحميل المباشر

لماذا يحدث؟
يغيب fallback تاريخ الويب أو يخطئ.
كيف تصلحه؟
راجع الاستضافة المفوضة وسلوك الغائب.
كيف تتجنب تكراره؟
وثق افتراض نشر نمط التاريخ.

تعتبر الحراسة تفويض بيانات

لماذا يحدث؟
اختلط التنقل بالفعل المحمي.
كيف تصلحه؟
افرض الإذن بحد الخدمة.
كيف تتجنب تكراره؟
اختبر الوصول المباشر مستقلاً.

اختبر فهمك

1. لماذا لا يعاد onMounted بين المسارين؟

اعرض الحل المشروح

قد تعاد النسخة نفسها. راقب المصدر أو تكامل التحديث وافحص التحميل والإلغاء. يظل فرض إعادة الربط خياراً آخر يؤثر في العمر.

2. تحجب حراسة العميل صفحة التحرير. هل تؤمن API؟

اعرض الحل المشروح

لا؛ يصادق API ويفوض كل فعل بغض النظر عن المسار. تحسن الحراسة التجربة ولا تمثل حد ثقة الخادم.

أهم ما تعلمته

  • تحدد المعاملات المهمة وقد تتغير بلا إعادة ربط.
  • لنمط التاريخ افتراضات استضافة.
  • الحراسة وإذن الخادم ضبطان مختلفان.

المراجع الرسمية