Используете ли вы Reactjs для создания форм?
Чтобы извлечь наибольшую выгоду из иммутабилирования, лучше всего, если ваш дизайн также его охватит. Что я имею в виду: разработать форму, которая просто отображает ваши данные. (чистая форма или FormPure)
Затем оберните эту форму / компонент другим компонентом, который содержит состояние отображаемой формы и фактически отображает данные через чистую форму. И позволяет вам просто редактировать его.
Иерархия будет выглядеть следующим образом: Приложение> Форма> FormPure
- Компоненты
- Форма:
- Может иметь свое собственное состояние.
- FormPure:
- Только отображает данные, предоставленные от его родителя (реагирует через реквизиты и передается через обратные вызовы вверх)
Когда пользователь нажимает кнопку «Сохранить», то подключенный компонент ( Form) может отправлять действие по обновлению состояния в избыточном формате.
Таким образом, вы можете создать свой FormPure отдельно от любых данных и просто использовать его по мере необходимости.
Вы можете рассмотрите возможность использования Storybook для приятного проектирования ваших компонентов.
Для 2: Да, immer разумно подходит для использования, просто убедитесь, что вы не злоупотребляете им, создавая большие деревья объектов, как описано в документация. Также обязательно отключите автозамерзание при развертывании в рабочей среде.
Подсказка: immer использует Proxy , убедитесь, что ваша целевая платформа поддерживает их, или обязательно переключитесь на реализацию ES5, которая является значительно медленнее (см. immer docs )