Как стать автором
Обновить

Комментарии 12

React useReducer, зачем нужен и как использовать

useReducer - вообще не нужен, ни в каких сценариях. Использовать его не надо и вообще противопоказано. Просто используйте MobX в связке с реактом и забудьте о всех заботах и проблемах.

НЛО прилетело и опубликовало эту надпись здесь

а если я Zustand начал использовать, то всё гг?

Да, это на одной планке с redux, effector и прочим мусором.

Да, это гг. Переползти на что-то другое другое будет очень больно. Потому что сложно придумать что-то минималистичнее, компактнее, и удобнее.

Ага, и обмазываться обсерверами, превращая создание любого компонента в г.

React useReducer, зачем нужен и как использовать

Ну, нужен он самому реакту, это понятно. Но зачем его использовать у себя в коде, совсем не понятно. Описанные преимущества ценны в сравнении и наглядном примере. Но сравнений нет, а примеры неудачные. Потому что рекомендованный вариант превратит код в нечитабельный кусок г, а нестандартные не соответствуют друг другу, так как предоставляют разные возможности.

Согласитесь, соблюдать баланс читабельности кода и производительности нужно. Автор привёл весьма удачный пример с useEffect: кейс когда значение одного useState зависит от значения другого useState и синхронизация происходит через useEffect -- действительно ест лишнее процессорное время и память. Так же, произвести все вычисления стейтов в одном месте (в reduce) и не размазывать логику по useEffect'ам -- должно быть "читабельнее" || "снижать когнитивную нагрузку" || "упрощать дебаг". К тому же Дэн Абрамов не отменяет useReducer.

Это плохой пример, потому что такие ситуации должны решаться батчингом. Там, где устанавливается state1, должен устанавливаться и state2.

const newState1 = {...}
setState1(newState1)
if (newState1 === any) setState2();

К тому же Дэн Абрамов не отменяет useReducer.

Ахахха, жесть вот это "логика". А если он скажет что лучше использовать голый js, а не реакт, то что?

Согласитесь, соблюдать баланс читабельности кода и производительности нужно

Разница в сколько-то микросекунд или даже миллисекунд не играет роли на клиентском приложении, когда за это приходится платить говнокодом. Гораздо правильнее отдать предпочтение хорошему коду, чем выйграть несколько микросекунд.

Человек, который пишет "выйграть" вряд ли когда-нибудь кого-то заставит использовать MobX, по которому он так фанатеет.

Я выбираю effector.

Я выбираю effector.

Помянем ваш write-only проект

Спасибо за свежий тьюториал. Как раз думал чем заменить 5 взаимосвязанных useState в компоненте верхнего уровня без затаскивания сторонних библиотек в код - тот самый случай.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий