Так как метод рендеринга компонента вызывается с каждым setState *, мне было интересно узнать о снижении производительности, если я напрямую изменю свойства состояния, вызову setState ({}) с пустым объектом и позволю компоненту полностью отобразить себя. Это имеет интересный побочный эффект в управлении состоянием: в этом случае состояние используется как изменяемый объект, а не как неизменяемый. Поскольку компонент будет повторно отображаться с новыми значениями состояния после вызова setState, он будет отражать новые значения в представлении. Конечно, изменение состояния не рекомендуется командой React, так как они предлагают, чтобы состояние рассматривалось как объект только для чтения, но, тем не менее, в некоторых случаях управление изменяемым объектом становится проще для управления состоянием.
Я знаю, что это не лучшая практика и, вероятно, сразу вызовет удивление, но я не могу остановиться и спросить о влиянии на производительность или любых других потенциальных проблемах, которые это может вызвать в типичном приложении.
Посмотрите на следующий пример для простой демонстрации: https://codesandbox.io/s/k5zy9zw8kv
Итак, пожалуйста, дайте мне знать, что вы думаете.
Спасибо.
* Если shouldComponentUpdate не был реализован в компоненте и возвращает false в зависимости от текущего состояния и значения nextState.
PS: Мое личное мнение, для управления состоянием лучше использовать MobX для средних и крупных приложений. Мой вопрос в основном для относительно небольших приложений. Я думаю, что и реакция, и избыточность делают управление состоянием излишне сложным, чем должно быть. Как разработчик с опытом работы с OO, я хотел бы видеть более простые и элегантные решения.