Правильно ли говорить, что магазин - это модель? - PullRequest
0 голосов
/ 04 сентября 2018

Я чувствую, что паттерн MVC и его производные (MVVM, MVP, MVW ..) в некотором роде мертвы. Появился новый шаблон: шаблон государственного управления (поток, моб ...).

Что ж, после изучения этих шаблонов кажется, что они не так уж отличаются, компонент - это ВМ, состояние - это Модель, и все.

Я прав?

  • Если да, зачем нам переименовывать эти сущности (хранить вместо модели), IMO усложняет понимание новой концепции, потому что мы (я) ищем большую разницу, которая подтверждает, что все должно быть переименовано ...
  • Если я ошибаюсь, пожалуйста, помогите мне понять, где различия? Я имею в виду, что переименование всей концепции должно иметь огромное значение ...

Спасибо

1 Ответ

0 голосов
/ 05 сентября 2018

Если вы рассматриваете DOM как View, компонентов / VirtualDOM как ViewModel, store как Model, ну, это Imo MVVM. Поэтому я думаю, что вы не ошиблись. Фактически, в моем проекте я называю свои глобальные хранилища MobX как Store, а мои локальные хранилища MobX (которые работают для определенных компонентов) как Model. (Если есть более подходящая практика именования, пожалуйста, скажите мне)

В то же время, шаблон управления состоянием сильно отличается от MVVM/MVC/MVW.

  • Данные в модели : Вы можете сохранять пользовательские настройки, такие как предпочтительные языки или темы, в магазинах, чтобы ваши магазины отличались от традиционных Model, который должен иметь дело с бизнес-логикой и данными.
  • Количество модели : Если вы используете Redux или Hyperapp или что-то подобное, существует только одно глобальное дерево состояний. Так что это сильно отличается от традиционных способов создания множества объектов Model.
  • Компонентно-управляемый : Вам не нужно все обрабатывать. Вы можете просто импортировать компонент, созданный другими, и просто передать ему данные. Затем он будет иметь дело с пользовательскими взаимодействиями и сам обновит представление. Может быть, он содержит Controller, может, он содержит Model, может, он не содержит ни одного из них. Это не важно Вам просто все равно.
  • Снимок : Вы можете сделать снимок своего состояния и сохранить его в виде строки. В следующий раз вы можете просто разобрать строку и восстановить весь сайт / систему. Так же, как сохранить / загрузить электронную игру. Это основной принцип государственного управления. Хотя традиционные MVVM/MVW способы не заставляют вас это делать. (А также я думаю, что для традиционных способов это довольно сложно, возможно, невозможно)
  • Неизменный : Возьмем, к примеру, React, у вас есть состояние и дерево виртуального домена, вы не меняете их, вы генерируете новое состояние и новое дерево для замены старых. Вы должны знать о жизненных кругах дерева и знать, как эффективно создавать новое дерево. Это явно отличается от традиционных MVVM/MVW способов.

Так что я думаю, что неплохо было бы называть сущности, такие как компоненты или хранилища, по-новому. Если вы называете их по-старому, возможно, программисты будут кодировать по-старому, и в результате они не будут пользоваться всей мощью современных фреймворков.

...