Назад к вопросам
Middle
92
questionbank

Что такое архитектурный паттерн MVVM?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Паттерн MVVM (Model-View-ViewModel) разделяет приложение на три основные части:

  • Model: Представляет данные и бизнес-логику. Она не зависит от пользовательского интерфейса.
  • View: Это слой пользовательского интерфейса. Он отображает данные из ViewModel и отправляет действия пользователя в ViewModel. View не содержит логики обработки данных.
  • ViewModel: Связующее звено между View и Model. Он предоставляет данные из Model в удобном для View формате и обрабатывает действия пользователя, обновляя Model. ViewModel содержит логику представления данных и обработки пользовательского ввода.

Связи между компонентами обычно реализуются через биндинги данных. View наблюдает за изменениями в ViewModel и обновляется автоматически, а ViewModel может реагировать на события из View.

// Пример представления ViewModel (условный JavaScript)
class TodoViewModel {
  constructor(model) {
    this.model = model;
    this.todos = this.model.todos; // Предоставляет данные для View
    this.newTodoText = ''; // Состояние для поля ввода в View
  }

  addTodo() {
    if (this.newTodoText.trim()) {
      this.model.addTodo(this.newTodoText.trim());
      this.newTodoText = ''; // Очищаем поле после добавления
    }
  }

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