Knockout.js folosește un model de proiectare Model-View-ViewModel (MVVM), care este o variantă a modelului clasic Model-View-Controller (MVC). Ca și în modelul MVC, model este datele stocate și vedere este reprezentarea vizuală a acestor date. Dar, în loc de controler, Knockout.js folosește a ViewModel ca intermediar între model și vedere.
ViewModel este o reprezentare JavaScript a datelor modelului, împreună cu funcțiile asociate pentru manipularea datelor. Knockout.js creează o legătură directă între ViewModel și vizualizare, care este modul în care poate detecta modificările datelor subiacente și actualizează automat aspectele relevante ale interfeței utilizator.
Figura 5: Modelul modelului View-ViewModelComponentele MVVM ale exemplului nostru de coș de cumpărături sunt listate după cum urmează:
Knockout.js folosește observabilelor pentru a urmări proprietățile ViewModel. Conceptual, observabilele acționează la fel ca variabilele JavaScript normale, dar l-au lăsat pe Knockout.js observa modificările lor și actualizarea automată a părților relevante ale vizualizării.
Figura 6: Utilizarea observabilelor pentru a expune proprietățile ViewModelNumai observatori expune proprietatile ViewModel. Pentru a conecta o componentă a interfeței utilizator în vedere la o observabilă particulară, trebuie să lega un element HTML la acesta. După legarea unui element într-un element observabil, Knockout.js este gata să afișeze automat modificările la ViewModel.
Figura 7: Legarea unei componente de interfață utilizator la o proprietate observabilăKnockout.js include mai multe legături încorporate care determină modul în care apare observabilul în interfața cu utilizatorul. Cel mai obișnuit tip de legare este afișarea pur și simplu a valorii proprietății observate, dar este posibilă și modificarea aspectului în anumite condiții sau apelarea unei metode a ViewModel atunci când utilizatorul face clic pe element. Toate aceste cazuri de utilizare vor fi acoperite în următoarele câteva lecții.
Modelul de vizualizare Model-View-ViewModel, observabilele și legăturile oferă baza pentru biblioteca Knockout.js. Odată ce ați înțeles aceste concepte, învățarea Knockout.js este pur și simplu o chestiune de a afla cum să accesați observabilele și să le manipulați prin diferitele legături încorporate. În următoarea lecție vom examina primele noastre concepte concrete prin construirea unei aplicații simple "Hello, World!".
Această lecție reprezintă un capitol din Knockout Succinct, o carte electronică gratuită de la echipa de la Syncfusion.