Почему React — различия между версиями
(Новая страница: «Почему React? Потому, что правильная концепция: это не MVC, а "MC" (Model-Component) фреймворк. Нет делен…») |
м |
||
Строка 1: | Строка 1: | ||
− | Почему React? Потому, что | + | Почему React? Потому, что это правильный вариант MVC (или MVVM?). Который, по большей части, не MVC, а "MC" (Model-Component) + внешний контроллер (например, Dispatcher в случае Flux), который занимается только обработкой действий и обновлением моделей. Внутри самого React нет деления на V и C. Почему это правильно? Потому, что деление на самом-то деле искусственное. Мы все чётко знаем, где View, и все чётко знаем, где Model. А вот где контроллер - тут всегда вопросы. То ли правильное View отражает состояние модели (общаясь с ней напрямую), то ли всё состояние должен проецировать контроллер (и тогда это ViewModel/презентер). То ли по контроллеру на экран, то ли по контроллеру на компонент. Отсюда и все вариации: контроллер, презентер, ViewController, ViewModel и так далее. Вроде контроллер (или ViewModel) должен обеспечивать заменяемость View, но по факту это никогда не работает. |
Версия 12:47, 18 июня 2016
Почему React? Потому, что это правильный вариант MVC (или MVVM?). Который, по большей части, не MVC, а "MC" (Model-Component) + внешний контроллер (например, Dispatcher в случае Flux), который занимается только обработкой действий и обновлением моделей. Внутри самого React нет деления на V и C. Почему это правильно? Потому, что деление на самом-то деле искусственное. Мы все чётко знаем, где View, и все чётко знаем, где Model. А вот где контроллер - тут всегда вопросы. То ли правильное View отражает состояние модели (общаясь с ней напрямую), то ли всё состояние должен проецировать контроллер (и тогда это ViewModel/презентер). То ли по контроллеру на экран, то ли по контроллеру на компонент. Отсюда и все вариации: контроллер, презентер, ViewController, ViewModel и так далее. Вроде контроллер (или ViewModel) должен обеспечивать заменяемость View, но по факту это никогда не работает.