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

Vue / الأساسي: المكوّنات التفاعلية وعقود الإدخال / الدرس 6

النماذج والتحقق وهوية القائمة الثابتة

نمذج الإدخال والعناصر المتكررة كي ترتبط القيم والأخطاء والحالة بالسجل المقصود.

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

أهداف الدرس

  • اشرح v-model الأصلي وحدود التحقق.
  • استخدم مفاتيح ثابتة وعناصر متكررة متاحة.

عامل إدخال النموذج كمسودة

ينسق v-model قيمة العنصر وحدثه بحسب النوع؛ تختلف بيانات النص والاختيار والمربع والقائمة. افصل المسودة عن المؤكد عند الإلغاء أو الفشل، وحدد ظهور الخطأ وتصحيحه. يحسن فحص العميل التغذية ولا يعوض الخادم والتفويض. العنوان والتعليمات والإرسال بلوحة المفاتيح جزء من السلوك لا زينة لاحقة.

تحقق من المقترح قبل إرساله

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

vue مسودة بتحقق إرسال صريح
<script setup>
import { ref } from "vue"
const draft = ref("")
const error = ref("")
const emit = defineEmits(["save-title"])
function submit() {
  const title = draft.value.trim()
  error.value = title ? "" : "Enter a title"
  if (title) emit("save-title", title)
}
</script>

<template>
  <form @submit.prevent="submit">
    <label>Note title <input v-model="draft"></label>
    <p v-if="error" role="alert">{{ error }}</p>
    <button type="submit">Save title</button>
  </form>
</template>

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

افصل التحويل عن صحة الأعمال

تغير trim وnumber وlazy العقد فاختر بقصد. لا يضمن number عدداً صالحاً للأعمال بكل حالة؛ عالج الفراغ وغير القابل للتحليل وفق الموثق. اربط قيمة غير نصية للاختيار عند قصدها. يكشف المخصص modelValue وupdate:modelValue أو defineModel المدعوم في الأساس. تجنب افتراضاً محلياً يختلف عن قيمة أب غير معرفة.

اربط الحالة المتكررة بمعرّفات ثابتة

يحدد المفتاح هوية العنصر عند الإضافة والتصفية والترتيب. استخدم معرّفاً بدائياً ثابتاً فريداً لا الفهرس مع الحالة. ليس المفتاح id HTML ولا عنواناً آلياً. يعشّش المثال المربع بعنوانه ويستخدم معرّف السجل، فيحفظ الهوية عند الترتيب. اشتق المرشح قبل العرض لا تجمع v-if وv-for بعنصر واحد ذي أسبقية مربكة.

vue سجلات ثابتة بحالة اختيار معنونة
<script setup>
import { ref } from "vue"
const notes = ref([
  { id: "n1", title: "Reactivity", selected: false },
  { id: "n2", title: "Components", selected: true }
])
</script>

<template>
  <ul>
    <li v-for="note in notes" :key="note.id">
      <label><input type="checkbox" v-model="note.selected"> {{ note.title }}</label>
    </li>
  </ul>
</template>

يبدأ Components محدداً وReactivity غير محدد. يمتلك المكوّن المصفوفة؛ تحتاج مجموعة الخصائص عقد الأب بدلاً من تعديل متداخل خفي. لا تدعي الدورة اختبار متصفح.

اختبر التحرير والترتيب والتعافي من الخطأ

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

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

تنتقل حالة الإدخال لصف آخر بعد الترتيب

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

يُعامل العد الفارغ كصالح

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

يبدأ نموذج الابن بقيمة مختلفة عن الأب

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

اختبر فهمك

1. لماذا يخطر الفهرس كمفتاح صف قابل للتحرير؟

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

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

2. يجتاز عنوان العميل ويفشل حفظ الخادم. ما الذي يبقى؟

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

احفظ المسودة وأظهر فشل الخادم منفصلاً بإعادة مقصودة. لا تمح النص أو تعلن الحفظ لحدث محلي، وتحقق من منع تكرار العملية المؤكدة.

أهم ما تعلمته

  • تختلف أعمار المسودة والسجل المؤكد.
  • لا يعوض التحويل التحقق.
  • تحمي المفاتيح الهوية عند تغير القائمة.

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