зная особо ничего про редакс чувствую что они близки, но вопрос немного про другое.
Читал что передавать в дочерний элемент пропсом колбек для смены стейта в родителе - плохая практика и это не реактовский подход.
В то же время сделать контекст и из любого дочернего элемента менять стейт родителя - хорошая практика и это является реактовским подходом.
Почему первое плохо, а второе хорошо?
ну, передавать колбек вниз особо проблемы нет, если внизу небольшой компонент. Проблема в том, что любой компонент эта функция и когда она ререндерится, то все переменные и дополнительные функции внутри себя - тоже ререндерятся и это вызывает ререндер нижнего компонента. Но и с этим можно бороться, useMemo или useCallback мемоизируют сам колбэк. Обычно в контекст выносят определенную логику, которая повторяется во многих местах, на разном уровне вложенности, чтобы не было особого геморроя в доступе к ней.
а отличие редакса от контекста велико. Формально редакс позволяет независимо от страницы сетить, какие-то данные, чтобы потом их реиспользовать. Например юзер залогинился и ты засетил на определенное время его данные, тебе не нужно будет в каждом компоненте где эти данные нужны запрашивать их по новому. Ну и экосистема редакса побольше будет, она объемней.
Про мемо и кб как раз тоже буквально прочитал По итогу с передачей setState как колбека в итоге нет проблем как я понял, просто при большой вложенности будет неудобно прокидывать дальше по компонентам С редаксом услышал, запомню Спасибо
Обсуждают сегодня