Чтобы ответить на вопросы, вам нужно знать, как они оба работают. Veux имеет состояние, которое является наблюдаемым / реактивным , поэтому установка state.something будет запускать что-либо, наблюдающее за state.something.
Состояние Redux - это «нормальный» объект данных javascript (без методов на объекте и не использовать прототип). Когда действие отправляется, то новое состояние создается с помощью redux, и response-redux запускает все функции mapStateToProps
или useSelector
и сравнивает текущий результат с последним (используя ссылочное сравнение, так что {} !== {}
. Если есть изменение, тогда response-redux повторно отобразит этот компонент.
Чтобы теперь ответить на ваши вопросы:
Состояние Veux - это не просто объект, и добавлено множество слушателей чтобы указать, что, когда вы сделаете state.newValue='new value'
, он запустит все эти прослушиватели. Redux должен сравнить предыдущее значение с текущим, и наиболее эффективный способ сделать это - ссылочное сравнение. Поэтому вам нужно сгенерировать новое состояние, в котором все неизменные реквизиты все еще указывают на ту же ссылку, что и раньше, но измененные реквизиты указывают на другую ссылку.
React / Redux использует функциональный подход, а vue / veux - объектно-ориентированный подход. Почему он популярен, возможно, потому, что React Redux существует дольше и имеет лучше поддерживаемую экосистему. Функциональное программирование стало более популярным в последнее время, поскольку использовать даже после десятилетий попыток, все еще очень сложно написать хороший код в объектно-ориентированном режиме (параллелизм). Лучшее, что может придумать дядя Боб, - это «У класса должна быть только одна причина для изменения». и написав в соответствии с этим правилом, вы получите класс, который имеет только метод, который может быть выполнен с помощью функции. Проблема с объединением связанных данных и поведения в классе заключается в том, что позже это отношение может измениться позже или вы обнаружите, что способ, которым вы их связали, не отражает того, что необходимо реализовать в реальном мире.
Их трудно выучить, и они хорошо справляются с задачей, я считаю, что сокращенный способ легче отслеживать и предсказывать, что происходит в сложных базах кода (сложные требования, а не ненужная сложность), и их легче тестировать, но в конце концов это просто личные предпочтения.