KnockoutJS - Kerangka MVVM

Model-View-ViewModel (MVVM)adalah pola desain arsitektur untuk mengembangkan aplikasi perangkat lunak. MVVM dikembangkan oleh Microsoft Architect John Gossman pada tahun 2005. Pola ini berasal dari pola Model-View-Controller (MVC). Keuntungan MVVM adalah memisahkan antarmuka pengguna grafis lapisan aplikasi dari logika bisnis. MVVM bertanggung jawab untuk menangani data dari model yang mendasarinya sedemikian rupa sehingga diwakili dan dikelola dengan sangat mudah. ViewModel di MVVM mewakili versi abstrak dari status dan tindakan View.

Kelas tampilan tidak tahu bahwa kelas Model dan ViewModel ada, juga Model dan ViewModel tidak tahu bahwa Tampilan ada. Model juga tidak menyadari bahwa ViewModel dan View ada.

Arsitektur

Melihat

View adalah Graphical User Interface yang dibuat menggunakan bahasa markup untuk merepresentasikan data. View mengikat ke properti ViewModel melalui konsep data-bind, yang secara tidak langsung terhubung ke data model. Tampilan tidak perlu diubah untuk setiap perubahan yang dilakukan di ViewModel. Perubahan yang dilakukan pada data di ViewModel secara otomatis disebarkan di View karena pengikatan.

Model

Model adalah data domain atau objek bisnis yang menyimpan data real-time. Model tidak membawa perilaku. Perilaku sebagian besar diterapkan dalam logika bisnis.

ViewModel

ViewModel adalah tempat pusat, tempat data dari logika tampilan Model dan Tampilan digabungkan bersama. ViewModel menyimpan status dinamis data. Ada pengikat implisit di antara View dan ViewModel untuk berkomunikasi satu sama lain. Pengikatan ini termasuk data deklaratif dan pengikatan perintah. Sinkronisasi View dan ViewModel dicapai melalui pengikatan ini. Setiap perubahan yang dibuat di View tercermin di ViewModel, dan begitu pula setiap perubahan di ViewModel secara otomatis tercermin di View. Keberadaan mekanisme pengikatan 2 arah ini merupakan aspek kunci dari pola MVVM ini.