Sobes.tech
Middle

Co je to architektonický vzor MVVM?

sobes.tech AI

Odpověď od AI

Vzor MVVM (Model-View-ViewModel) rozděluje aplikaci na tři hlavní části:

  • Model: Představuje data a obchodní logiku. Není závislý na uživatelském rozhraní.
  • View: Je vrstva uživatelského rozhraní. Zobrazuje data z ViewModelu a odesílá akce uživatele do ViewModelu. View neobsahuje logiku zpracování dat.
  • ViewModel: Je spojkou mezi View a Modelem. Poskytuje data z Modelu ve vhodném formátu pro View a zpracovává akce uživatele, aktualizujíc Model. Obsahuje logiku prezentace dat a zpracování uživatelského vstupu.

Spojení mezi komponentami je obvykle realizováno přes datové vazby. View sleduje změny ve ViewModelu a aktualizuje se automaticky, zatímco ViewModel může reagovat na události z View.

// Příklad ViewModelu (podmíněný JavaScript)
class TodoViewModel {
  constructor(model) {
    this.model = model;
    this.todos = this.model.todos; // Poskytuje data pro View
    this.newTodoText = ''; // Stav pro vstupní pole ve View
  }

  addTodo() {
    if (this.newTodoText.trim()) {
      this.model.addTodo(this.newTodoText.trim());
      this.newTodoText = ''; // Vyčistí pole po přidání
    }
  }

  removeTodo(index) {
    this.model.removeTodo(index);
  }
}