readonly() إنشاء وكيل للقراءة فقط
آخر تحديث: 2026-10-22
readonly() إنشاء وكيل للقراءة فقط
تُنشئ readonly() وكيلًا للقراءة فقط من البيانات الأصلية: أي كتابة تُصدر تحذيرًا وتفشل، لحماية البيانات من التعديل غير المقصود.
| المجموعة | التفاعلية: الأساس |
|---|---|
| النوع | API |
| النطاق | داخل المكوّن |
| إصدار Vue | 3.0+ |
| دعم SSR | مدعوم |
📝 الصيغة
const config = readonly({ theme: 'dark' })
config.theme = 'light' // ❌ تحذير: فشلت عملية الكتابة
⚙️ الوسائط
| target | كائن أو ref (وعند تمرير ref تُعاد نسخة للقراءة فقط) |
|---|
القيمة المُرجعة:وكيل عميق للقراءة فقط
▶ مثال
عدّل الشيفرة أدناه وشاهد النتيجة مباشرة:
المخرجات:
Theme stays dark; clicking logs a failed-write warning and nothing changes.
💡 نقاط مهمة
💡 نصيحة سيناريو نموذجي: تغليف كائن الإعدادات قبل تمريره إلى المكونات الأبناء لمنعهم من تعديل بيانات الأب.
ℹ️ ملاحظة القراءة فقط باتجاه واحد: تتزامن تغييرات المصدر (الكائن الأصلي) إلى الوكيل، بينما تُحجب الكتابة العكسية.
⚠️ تحذير في بيئة التطوير تظهر تحذيرات عند الكتابة، وفي الإنتاج تفشل الكتابة بصمت — فلا تعتمد عليها كتحقق وقت التشغيل.
🏷️ الأساس ذات صلة
💡 حالات ذات صلة
المزيد من الحالات قريباً.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
س هل تمنع readonly كل أنواع التعديل؟
ج تعترض الكتابة عبر الوكيل فقط؛ أما التعديل المباشر على الكائن الأصلي فيبقى ممكنًا، لذا فالوكيل للقراءة فقط لا يعني أن البيانات غير قابلة للتغيير.
س هل تتحدّث البيانات بعد تغليفها بـ readonly؟
ج نعم: تتزامن تغييرات البيانات المصدرية إلى الوكيل، والمحجوب هو الكتابة فقط.
س ما الفرق بينها وبين Object.freeze؟
ج تجمّد freeze الكائن الحقيقي بشكل لا رجعة فيه؛ بينما readonly مجرد طبقة وكيل تحافظ على قدرة التتبع التفاعلي.