MVVM. Model-View-ViewModel шаблоны проектирования архитектуры приложения

Sdílet
Vložit
  • čas přidán 10. 07. 2024
  • Что такое MVVM? Примеры реализаций архитектуры в Laravel | Magento | Angular | React | Vue
    Смотри что такое MVC в этом плейлисте.
    Model - бизнес логика приложения
    View - шаблон для генерации документа, например часть HTML Разметки
    ViewModel - логика связи Model с View. Конвертация данных между слоями и обеспечение логики взаимодействия иерархии V + VM
    Презентация docs.google.com/presentation/...
    Видео MVC • Model-VIew-Controller ...
    0:00 - Введение
    0:57 - ViewModel
    2:51 - Model
    4:16 - View
    5:04 - Backend
    9:19 - Frontend
    13:39 - Выводы

Komentáře • 15

  • @Par4uk
    @Par4uk Před 2 lety +3

    Класс, то что нужно, это уровень мидл, спасибо Макс )

  • @grommaks
    @grommaks  Před 3 lety +6

    Привет всем 😎
    Простите за долгий простой по видосам, были на то причины, но надеюсь вы не забыли меня 😅
    Приятного просмотра и надеюсь видео получилось интересным и познавательным...
    Тема шаблонов проектирования для меня очень интересна и важна, я ее буду развивать и дальше...подписывайтесь, чтобы не пропустить видео из этого плейлиста 😜

  • @kirilllubynets8592
    @kirilllubynets8592 Před 2 lety +1

    супер топ, я долго подобное искал это топ инфа

  • @ukrgerri4
    @ukrgerri4 Před 2 lety +1

    Хорошее обьяснение, мне зашло, спасибо!

  • @i_am_5_percent
    @i_am_5_percent Před 3 lety +1

    Тааак) если ангуляр или реакт компонент юзать как VM то это лютейший говнокод) Они являются view controller - их задача обработка пользовательского ввода, анимашки и стейт вроде показать/скрыть выпадающий список. ViewModel это точно не ui component современных фронтенд фреймворков. Тут mobx class например должен быть vm.

    • @grommaks
      @grommaks  Před 3 lety

      например метанит
      ViewModel
      ViewModel или модель представления связывает модель и представление через механизм привязки данных. Если в модели изменяются значения свойств, при реализации моделью интерфейса INotifyPropertyChanged автоматически идет изменение отображаемых данных в представлении, хотя напрямую модель и представление не связаны.
      ViewModel также содержит логику по получению данных из модели, которые потом передаются в представление. И также VewModel определяет логику по обновлению данных в модели.
      Поскольку элементы представления, то есть визуальные компоненты типа кнопок, не используют события, то представление взаимодействует с ViewModel посредством команд.
      Например, пользователь хочет сохранить введенные в текстовое поле данные. Он нажимает на кнопку и тем самым отправляет команду во ViewModel. А ViewModel уже получает переданные данные и в соответствии с ними обновляет модель.
      --------
      Angularjs действительно был MVC, но тут мало чего от контроллера осталось...в целом я до конца не уверен, можно ли применять MVC|MVVM к современным js фреймворкам...но сказать что ангулар это комопнентная архитектура - ничего не сказать...слишком много всего за пределами компонентов

  • @germanmalinovsky1719
    @germanmalinovsky1719 Před 3 lety +3

    Без примеров, очень тяжело понять о чем точно речь, потому что возможно подразумевается другое чем я встречал в проектах. Про viewmodel в Laravel вообще впервые слышу. Там же обычный MVP c пассивной вьюхой. Для меня MVVM это первую очередь про двусторонний биндинг данных, как это сделано в .NET WPF

    • @grommaks
      @grommaks  Před 3 lety +1

      В Laravel это view Composer, не все используют его в проектах, но достаточно мощная штука. Если мы говорим об http запросах с ответом html, то двустороннюю связь не получится сделать, да и не нужно

  • @Jokero74
    @Jokero74 Před 3 lety +1

    ниче не понятно, но оч интересно)). так и не понял чем отличается View от ViewModel. Можно на примере чегонить простого, а не реактАнгуляров.

    • @grommaks
      @grommaks  Před 3 lety +3

      View это шаблон который рисуется. Обычная верстка но которая получила данные для отрисовки и можно использовать циклы и условия для отрисовки.
      ViewModel это объект который знает где взять данные и как их подготовить для передачи в шаблон.
      В MVC view получает доступ к данным для отрисовки, как правило к данным которые подготовил контроллер. Нет возможности допросить данных.
      В MVVM, View получает доступ к ViewModel, по этому может вызывать методы и обращаться к свойствам ViewModel. Данные могут быть запрошены тогда, когда шаблон считает что их можно нарисовать, а не когда контроллер передал.
      MVVM имеет минусы
      Каждая ВМ может делать запросы в АПИ, а то время как С старался сделать оптимальный запрос. Решение это микро АПИ (рест) или единое хранилище, для переиспользования данных (redux, registry)
      Но самый большой плюс от MVVM, страницу можно представить не как один набор компонентов (ВМ + В) и любым удобным способом добавлять и удалять их со страниц, при этом никаких дополнительных действий не понадобится.
      В контроллере нужно было бы изменить набор передаваемых данных во вью

  • @user-kn3ut1sh2o
    @user-kn3ut1sh2o Před 2 lety +1

    Правильно ли я понимаю, что в React, Model - это redux, View - это презентационная компонента, а ViewModel - это контейнерная компонента?