Pull to refresh

Comments 2

Спасибо за статью!

Redux хорош как раз тем, что в можно получить «срез» всего приложения в любой момент времени, взглянуть на состояние, сравнить с предыдущим, пройтись по логу экшенов и понять где ошибка. Полная предсказуемость как Redux себя и позиционирует. Если еще использовать глубокий Object.Freeze на стейт (в dev режиме, не в продакшене, чтобы не тормозило), то всякие случайные мутации вроде if (state.todo.title = 'first') ловятся на ура.

А для cайд-эффектов крайне рекомендую посмотреть redux-saga. Просто невероятно облегчает работу с асинхронными вызовами благодаря генераторам и CSP.

Как альтернатива редаксу — MobX. Авторы наоборот делают ставку на мутабельный стейт, но с фишками редакса вроде логирования изменений стейта, вывода разности между текущим и предыдущим стейтом, защиты от случайный мутаций. Основная идея в поддержке ссылочной целостности (referential equality), то есть что объект состояния всегда один и тот же и никогда не клонируется, и в подключении как можно большего числа компонентов к стейту. Это позволяет, например, обновлять содержимое ячейки таблицы вообще без перерисовки всей таблицы (я имею ввиду без захода в render компонента Table). Большой плюс к производительности и меньше мучений с shoudComponentUpdate. К недостаткам можно отнести способ подписки на изменения через get/set, а не через сравнения содержимого, что требует обязательно передачи подписчикам всего объекта подписки, а не только, допустим, его части. Поэтому нельзя наблюдать примитивные типы и т.д. Но это недостаток не в смысле реализации, а в том смысле, что можно легко ошибиться неправильно подписавшись и не понимать почему не приходят обновления. Лучше подробнее смотреть здесь http://mobxjs.github.io/mobx/best/react.html
Т.Е. самый обычный copy-paste теперь так называется?
Я совсем не против писать boilerplate код


Писать такой код как раз очень легко, а вот отлаживать и поддерживать — нет.
Sign up to leave a comment.