Pemrograman reaktif dan MVVM adalah dua pendekatan yang dapat mengatasi masalah pemisahan lapisan domain dari UI.
- MVVM melakukan ini dengan mendefinisikan viewmodel, yang merupakan struktur data yang dipetakan ke komponen UI. UI menampilkan data, dan mungkin memperbaruinya saat pengguna muncul.
- kerangka kerja reaktif mendefinisikan grafik yang dapat diamati yang memberi tahu UI bahwa sebagian data telah berubah
Kerangka kerja reaktif mendapatkan berbagi pikiran, baik di platform mainstream (dengan Rx di .net & java, react.js) dan lebih banyak tempat eksperimental (FRP dalam haskell).
Saya terutama menggunakan MVVM dengan sudut, dan saya menemukan kesederhanaan untuk rasio ekspresif cukup memuaskan, meskipun saya hanya bekerja pada proyek kecil / menengah dengannya.
Apa kerangka kerja reaktif membeli pengembang yang tidak dimiliki mvvm?
Apakah benar-benar ada perbedaan? Misalnya, knockout.js diiklankan sebagai kerangka mvvm, tetapi memiliki perasaan reaktif dalam antarmuka:
this.firstName = ko.observable("John");
this.lastName = ko.observable("Smith");
this.fullName = ko.computed(function() {
return this.firstName() + " " + this.lastName();
}, this);
Jawaban:
Itu adalah konsep-konsep berbeda yang tidak bersaing dan mereka dapat dengan mudah bekerja bersama untuk menghasilkan hasil yang bagus.
Dalam istilah awam:
MVVM berguna untuk menjauh dari kekacauan codebehind (GUI / model coupling). Pendekatan reaktif berguna untuk mengurangi kekacauan event / callback.
Saya akan merekomendasikan belajar sedikit tentang XAML / WPF karena Microsoft adalah penemu asli MVVM. Microsoft juga menghasilkan implementasi pendekatan Reaktif yang sangat baik: Ekstensi Reaktif.
Berikut ini adalah upaya yang layak untuk menggabungkannya:
http://www.reactiveui.net https://github.com/reactiveui/ReactiveUI
Pertanyaan SO terkait:
/programming/1763411/reactive-extensions-rx-mvvm
sumber