Разделение состояния и представления

Посмотрел хороший доклад от создателя MobX о разделении состояния и представления приложения.

Лучший момент в этом докладе — когда Мишель закомментировал ReactDOM.render(...) и как ни в чём не бывало продолжил пользоваться демо-приложением прямо через консоль браузера, без UI.

Главные преимущества разделения состояния и представления:

  • можно писать логику и разрабатывать интерфейс параллельно, они перестают напрямую зависеть друг от друга;
  • тестировать логику гораздо проще, если она не зависит от представления (можно покрыть основные пользовательские сценарии простыми юнит-тестами без всякого оверхеда вроде инструментов для тестирования реакт-компонентов).

Помимо прочего из доклада вы узнаете, как перестать зависеть от lifecycle-методов Реакта (да, можно запрашивать данные не только в componentWillMount).

Кроме этого доклада есть подробная статья, в которой пошагово демонстрируется разработка приложения с роутингом, загрузкой данных, аутентификацией и юнит-тестами без привязки к представлению: How to decouple state and UI (a.k.a. you don’t need componentWillMount).