Привет всем 😎 Простите за долгий простой по видосам, были на то причины, но надеюсь вы не забыли меня 😅 Приятного просмотра и надеюсь видео получилось интересным и познавательным... Тема шаблонов проектирования для меня очень интересна и важна, я ее буду развивать и дальше...подписывайтесь, чтобы не пропустить видео из этого плейлиста 😜
Без примеров, очень тяжело понять о чем точно речь, потому что возможно подразумевается другое чем я встречал в проектах. Про viewmodel в Laravel вообще впервые слышу. Там же обычный MVP c пассивной вьюхой. Для меня MVVM это первую очередь про двусторонний биндинг данных, как это сделано в .NET WPF
В Laravel это view Composer, не все используют его в проектах, но достаточно мощная штука. Если мы говорим об http запросах с ответом html, то двустороннюю связь не получится сделать, да и не нужно
Тааак) если ангуляр или реакт компонент юзать как VM то это лютейший говнокод) Они являются view controller - их задача обработка пользовательского ввода, анимашки и стейт вроде показать/скрыть выпадающий список. ViewModel это точно не ui component современных фронтенд фреймворков. Тут mobx class например должен быть vm.
например метанит ViewModel ViewModel или модель представления связывает модель и представление через механизм привязки данных. Если в модели изменяются значения свойств, при реализации моделью интерфейса INotifyPropertyChanged автоматически идет изменение отображаемых данных в представлении, хотя напрямую модель и представление не связаны. ViewModel также содержит логику по получению данных из модели, которые потом передаются в представление. И также VewModel определяет логику по обновлению данных в модели. Поскольку элементы представления, то есть визуальные компоненты типа кнопок, не используют события, то представление взаимодействует с ViewModel посредством команд. Например, пользователь хочет сохранить введенные в текстовое поле данные. Он нажимает на кнопку и тем самым отправляет команду во ViewModel. А ViewModel уже получает переданные данные и в соответствии с ними обновляет модель. -------- Angularjs действительно был MVC, но тут мало чего от контроллера осталось...в целом я до конца не уверен, можно ли применять MVC|MVVM к современным js фреймворкам...но сказать что ангулар это комопнентная архитектура - ничего не сказать...слишком много всего за пределами компонентов
View это шаблон который рисуется. Обычная верстка но которая получила данные для отрисовки и можно использовать циклы и условия для отрисовки. ViewModel это объект который знает где взять данные и как их подготовить для передачи в шаблон. В MVC view получает доступ к данным для отрисовки, как правило к данным которые подготовил контроллер. Нет возможности допросить данных. В MVVM, View получает доступ к ViewModel, по этому может вызывать методы и обращаться к свойствам ViewModel. Данные могут быть запрошены тогда, когда шаблон считает что их можно нарисовать, а не когда контроллер передал. MVVM имеет минусы Каждая ВМ может делать запросы в АПИ, а то время как С старался сделать оптимальный запрос. Решение это микро АПИ (рест) или единое хранилище, для переиспользования данных (redux, registry) Но самый большой плюс от MVVM, страницу можно представить не как один набор компонентов (ВМ + В) и любым удобным способом добавлять и удалять их со страниц, при этом никаких дополнительных действий не понадобится. В контроллере нужно было бы изменить набор передаваемых данных во вью
Класс, то что нужно, это уровень мидл, спасибо Макс )
Привет всем 😎
Простите за долгий простой по видосам, были на то причины, но надеюсь вы не забыли меня 😅
Приятного просмотра и надеюсь видео получилось интересным и познавательным...
Тема шаблонов проектирования для меня очень интересна и важна, я ее буду развивать и дальше...подписывайтесь, чтобы не пропустить видео из этого плейлиста 😜
супер топ, я долго подобное искал это топ инфа
Хорошее обьяснение, мне зашло, спасибо!
Без примеров, очень тяжело понять о чем точно речь, потому что возможно подразумевается другое чем я встречал в проектах. Про viewmodel в Laravel вообще впервые слышу. Там же обычный MVP c пассивной вьюхой. Для меня MVVM это первую очередь про двусторонний биндинг данных, как это сделано в .NET WPF
В Laravel это view Composer, не все используют его в проектах, но достаточно мощная штука. Если мы говорим об http запросах с ответом html, то двустороннюю связь не получится сделать, да и не нужно
Тааак) если ангуляр или реакт компонент юзать как VM то это лютейший говнокод) Они являются view controller - их задача обработка пользовательского ввода, анимашки и стейт вроде показать/скрыть выпадающий список. ViewModel это точно не ui component современных фронтенд фреймворков. Тут mobx class например должен быть vm.
например метанит
ViewModel
ViewModel или модель представления связывает модель и представление через механизм привязки данных. Если в модели изменяются значения свойств, при реализации моделью интерфейса INotifyPropertyChanged автоматически идет изменение отображаемых данных в представлении, хотя напрямую модель и представление не связаны.
ViewModel также содержит логику по получению данных из модели, которые потом передаются в представление. И также VewModel определяет логику по обновлению данных в модели.
Поскольку элементы представления, то есть визуальные компоненты типа кнопок, не используют события, то представление взаимодействует с ViewModel посредством команд.
Например, пользователь хочет сохранить введенные в текстовое поле данные. Он нажимает на кнопку и тем самым отправляет команду во ViewModel. А ViewModel уже получает переданные данные и в соответствии с ними обновляет модель.
--------
Angularjs действительно был MVC, но тут мало чего от контроллера осталось...в целом я до конца не уверен, можно ли применять MVC|MVVM к современным js фреймворкам...но сказать что ангулар это комопнентная архитектура - ничего не сказать...слишком много всего за пределами компонентов
ниче не понятно, но оч интересно)). так и не понял чем отличается View от ViewModel. Можно на примере чегонить простого, а не реактАнгуляров.
View это шаблон который рисуется. Обычная верстка но которая получила данные для отрисовки и можно использовать циклы и условия для отрисовки.
ViewModel это объект который знает где взять данные и как их подготовить для передачи в шаблон.
В MVC view получает доступ к данным для отрисовки, как правило к данным которые подготовил контроллер. Нет возможности допросить данных.
В MVVM, View получает доступ к ViewModel, по этому может вызывать методы и обращаться к свойствам ViewModel. Данные могут быть запрошены тогда, когда шаблон считает что их можно нарисовать, а не когда контроллер передал.
MVVM имеет минусы
Каждая ВМ может делать запросы в АПИ, а то время как С старался сделать оптимальный запрос. Решение это микро АПИ (рест) или единое хранилище, для переиспользования данных (redux, registry)
Но самый большой плюс от MVVM, страницу можно представить не как один набор компонентов (ВМ + В) и любым удобным способом добавлять и удалять их со страниц, при этом никаких дополнительных действий не понадобится.
В контроллере нужно было бы изменить набор передаваемых данных во вью
Правильно ли я понимаю, что в React, Model - это redux, View - это презентационная компонента, а ViewModel - это контейнерная компонента?
Да, верно 👍
@@grommaks Спасибо!