Посмотрел хороший доклад от создателя MobX о разделении состояния и представления приложения.
Лучший момент в этом докладе — когда Мишель закомментировал ReactDOM.render(...)
и как ни в чём не бывало продолжил пользоваться демо-приложением прямо через консоль браузера, без UI.
Главные преимущества разделения состояния и представления:
- можно писать логику и разрабатывать интерфейс параллельно, они перестают напрямую зависеть друг от друга;
- тестировать логику гораздо проще, если она не зависит от представления (можно покрыть основные пользовательские сценарии простыми юнит-тестами без всякого оверхеда вроде инструментов для тестирования реакт-компонентов).
Помимо прочего из доклада вы узнаете, как перестать зависеть от lifecycle-методов Реакта (да, можно запрашивать данные не только в componentWillMount
).
Кроме этого доклада есть подробная статья, в которой пошагово демонстрируется разработка приложения с роутингом, загрузкой данных, аутентификацией и юнит-тестами без привязки к представлению: How to decouple state and UI (a.k.a. you don’t need componentWillMount).