ctx.on()
Subscribe event konteks di RunJS (seperti perubahan nilai field, perubahan properti, refresh resource, dll.). Event akan dipetakan berdasarkan tipe ke custom DOM event di ctx.element atau event bus internal ctx.resource.
Skenario Penggunaan
Definisi Tipe
Event Umum
Aturan pemetaan event akhir: yang diawali dengan
resource:melaluictx.resource.on, lainnya biasanya melalui DOM event dictx.element(jika ada).
Contoh
Binding Dua Arah Field (React useEffect + Cleanup)
DOM Listener Native (Pengganti saat ctx.on Tidak Tersedia)
Update UI Setelah Resource Refresh
Penggunaan Berpasangan dengan ctx.off
- Listener yang didaftarkan dengan
ctx.onharus dihapus pada waktu yang tepat melalui ctx.off, untuk menghindari memory leak atau pemicu berulang. - Dalam React, biasanya memanggil
ctx.offdi function cleanupuseEffect. ctx.offmungkin tidak ada, disarankan menambahkan optional chaining saat digunakan:ctx.off?.('eventName', handler).
Hal yang Perlu Diperhatikan
- Pembatalan berpasangan: setiap
ctx.on(eventName, handler)harus memilikictx.off(eventName, handler)yang sesuai, danhandleryang diteruskan harus referensi yang sama. - Lifecycle: hapus listener sebelum komponen di-unmount atau context dihancurkan, jika tidak dapat menyebabkan memory leak.
- Ketersediaan event: event yang didukung oleh tipe context yang berbeda berbeda, lihat dokumentasi komponen masing-masing.
Dokumentasi Terkait
- ctx.off - Menghapus event listener
- ctx.element - Container render dan DOM event
- ctx.resource - Instance resource dan
on/off-nya - ctx.setValue - Menyetel nilai field (akan memicu
js-field:value-change)

