شرح Mutations
مقدمة
في الدرس السابق تعرفنا على خاصية Getters والتي من خلالها استطعنا ان نسترجع البيانات بعد ان نقوم ببعض التعديلات عليها من دون التغيير على قيمة الكائن "grades" , وقمنا بتطبيق مثالين احدهم ليعرض لنا درجات الطلبة بنظام الحروف, والاخر يعرض لنا الطلبة الذين تفوق درجتهم الـ90. في هذ الدرس نريد ان نقوم بإضافة بعض الدرجات لجميع الطلبة, بالتالي نحتاج الى ان نعدل على الكائن "grades" , ومن هنا تأتي الحاجة لاستخدام خاصية Mutations التي سنتعرف عليها في هذا الدرس.
استخدام Mutations
سنتعلم استخدام الـ Mutations عن طريق تطبيق المثال , ولذلك سنقوم بالخطوات التالية:
- من ملف store.js داخل ثابت "store" قم بتعريف كائن "mutations" :
mutations: { }
-
قم بتعريف خاصية جديدة بإسم "addDegree" مع تعريف معامل بإسم "payload" الذي سيحمل عدد الدرجات المراد اضافتها للطلبة:
mutations: { addDegree: (state,payload) => { } }
-
قم بكتابة كود يضيف درجات للطلبة:
mutations: { addDegree: (state,payload) => { state.grades.forEach(grade => { grade.degree += payload; }); } }
-
نحتاج الان الى تعريف دالة في اي عنصر في اي عنصر بالمشروع -مثلا ListOne- تقوم الدالة بإستدعاء خاصية "addDegree" الموجودة في "mutations" :
methods:{ addDegree(){ this.$store.commit("addDegree", 5); } }
لاحظ كيف تم الاستدعاء وكيف تم تمرير القيمة "5" للمعامل "payload" .
-
قم باضافة زر (Button) لينفذ الدالة "addDegree" عند الضغط عليه:
وبهذا نكون قد قمنا بالتعديل على بيانات الكائن "grades"
ملاحظة: تستطيع استخدام خاصية Mutations بدون ان تقوم بتمرير معاملات.
الدرس على Github
محتوى الدورة
الدرس | |
---|---|
1 | مقدمة |
2 | تهيئة مشروع Vue للبدء |
3 | تنصيب Vuex واستخدامها |
4 | شرح Getters |
5 | شرح Mutations الدرس الحالي |
6 | شرح Actions |
7 | التنظيم باستخدام Modules |
الكلمات الدليلية
عن الدرس
0 إعجاب |
1 متابع |
0 مشاركة |
998 مشاهدات |
منذ 4 سنوات |
التعليقات (0)
عرض المزيد.. جديد مقالاتي
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !