OOZOU
تواصلوا معنا
العودة إلى TIL
javascript

بنية Flux بسيطة باستخدام Vue.js

13 أكتوبر 2020

في التطبيقات الصغيرة التي لا تحتاج إلا إلى نمط بسيط لإدارة الحالة، أستخدم دائمًا مكوّنًا واحدًا يحتفظ بحالة التطبيق، وهو الـ container. ويكون هذا المكوّن المصدر الوحيد الموثوق للحالة (single source of truth)، يرجع إليه التطبيق لمعرفة حالاته. توفّر Vue آلية لإنشاء مستمع أحداث عام على مستوى الجذر يُسمّى EventBus، وهي طريقة بسيطة جدًا لمحاكاة بنية flux.

كل ما تحتاجون إليه هو وحدة واحدة تصدّر Vue باسم EventBus على النحو التالي

// EventBus.js
import Vue from 'vue'
export const EventBus = new Vue()

بعد ذلك يمكنكم استخدامها داخل الـ container للاستماع (listen) إلى الأحداث القادمة من أي مكوّن داخل التطبيق. عادةً أضيف المستمع في مرحلة created من دورة الحياة.

EventBus.$on('event-name', callback)

ثم يمكنكم استيراد EventBus في أي مكوّن من مكوّناتكم وإطلاق الحدث my-custom-event من أي مكان، دون الحاجة إلى إرسال الحدث (emit) إلى المكوّن الأب وتكرار العملية كلها في كل مكوّن يقع بين المكوّن الذي يطلق التغيير والـ container المستهدف.

// Goes directly to the global listener and triggers callback
EventBus.$emit('event-name')

هذا كل شيء. وإذا أصبح الأمر معقدًا أكثر من اللازم، ففكّروا في استخدام Vuex.

المزيد حول javascript

javascript13 أكتوبر 2020

التعيين بالتفكيك (Destructuring) في JS

أمثلة بسيطة javascript const [a, b, ...c] = [10, 20, 100,200] // a= 10, b=20, c=[100,200] const { first, second } = { first: 1, second: 2 } // first = 1, second = 2

javascript13 أكتوبر 2020

كيف تنشئون عنصر HTML مع خصائصه في سطر واحد في JavaScript

عند العمل على مشروع JavaScript، من الشائع إنشاء عناصر HTML ديناميكيًا. وعادةً ما تُستخدم عدة أسطر من الكود لإنشاء العنصر وتعيين خصائصه المتعددة…

هل لديكم فكرة مشروع؟

يسعدنا أن نتعرّف على ما تبنونه.

ابدأوا المحادثةhello@oozou.com
OOZOU Logo

بانكوك · سنغافورة · هونغ كونغ

X
Facebook
Instagram
LinkedIn
OOZOU Co., Ltd.
548 One City Centre
Ploenchit Road
Bangkok 10330
Thailand
+66 2544 0000
hello@oozou.com

الخدمات

  • تطوير الويب
  • وكلاء الذكاء الاصطناعي والذكاء الاصطناعي التوليدي
  • تطوير تطبيقات الجوال
  • تحليلات البيانات وهندستها
  • تصميم تجربة المستخدم وواجهته (UX/UI) وتصميم المنتجات
  • التحوّل الرقمي

الشركة

  • من نحن
  • الوظائف
  • المدونة
  • دراسات الحالة
  • عروض حية
  • تعلّمت اليوم
  • تواصل معنا

المزيد

  • القطاعات
  • شبكة الشركاء
© 2026 OOZOU. جميع الحقوق محفوظة.
سياسة الخصوصيةمدونة قواعد السلوكسياسة مكافحة الرشوة والفساد