OOZOU
Hubungi Kami
Kembali ke TIL
javascript

Arsitektur Flux Sederhana dengan Vue.js

13 Oktober 2020

Untuk aplikasi kecil yang hanya memerlukan pola state management sederhana, saya selalu menggunakan satu komponen untuk menyimpan state aplikasi, yaitu sebuah container. Container ini berfungsi sebagai single source of truth yang menjadi acuan aplikasi untuk state-nya. Vue menyediakan mekanisme untuk membuat global event listener di level root yang disebut EventBus, yang merupakan cara super sederhana untuk meniru arsitektur flux.

Yang Anda perlukan hanyalah satu modul yang mengekspor Vue sebagai EventBus seperti ini

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

Kemudian Anda dapat menggunakannya di dalam container untuk listen event dari komponen mana pun di dalam aplikasi. Saya biasanya menambahkan listener pada lifecycle created.

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

Setelah itu Anda dapat mengimpor EventBus ke komponen mana pun dan memicu my-custom-event dari mana saja, tanpa harus melakukan emit event ke parent komponen tersebut dan mengulangi seluruh proses di setiap komponen yang berada di antara komponen pemicu perubahan dan container tujuan.

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

Selesai. Jika semuanya mulai terlalu kompleks, pertimbangkan untuk menggunakan Vuex.

Lainnya tentang javascript

javascript13 Oktober 2020

Destructuring Assignment di JS

Contoh sederhana 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 Oktober 2020

Cara Membuat Elemen HTML beserta Atributnya dalam Satu Baris di JavaScript

Saat mengerjakan proyek JavaScript, membuat elemen HTML secara dinamis adalah hal yang umum. Secara tradisional, Anda mungkin memakai beberapa baris kode untuk membuat elemen dan mengatur beberapa atribut…

Punya proyek yang ingin diwujudkan?

Kami ingin mendengar apa yang sedang Anda bangun.

Mulai Percakapanhello@oozou.com
OOZOU Logo

Bangkok · Singapura · Hong Kong

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

Layanan

  • Pengembangan Web
  • Agen AI & Generative AI
  • Pengembangan Aplikasi Mobile
  • Analitik Data & Data Engineering
  • Desain UI/UX & Produk
  • Transformasi Digital

Perusahaan

  • Tentang Kami
  • Karier
  • Blog
  • Studi Kasus
  • Demo Langsung
  • Today I Learned
  • Hubungi Kami

Lainnya

  • Industri
  • Jaringan Mitra
© 2026 OOZOU. Hak cipta dilindungi undang-undang.
Kebijakan PrivasiKode EtikKebijakan ABAC