Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
А Redux это глобальные переменные, так как там один стор на все приложение
Про Redux слышал, но не смотрел.
Все состояние приложение хранится в одном месте, и спускается вниз разделяясь для каждого конкретного компонента.А как там решают задачу когда компоненту нужно для себя что-то подгрузить с сервера, например когда в компонент пришел ид пользователя и нужно загрузить его имя с сервера?
Компоненты же поднимают ивенты
В компонент приходит уже готовый кусок состояния, который должен включать в себя имя пользователя. Ну то есть у нас есть одна жирная структура которая содержит в себе все.Вы же не предлагаете выкачивать всю БД на клиент, а значит вам нужно организовывать дополнительный код на (сервере и) клиенте который заботится о наличии данных именно для этого компонента.
{{userId | getUserName}}. С Redux, получается, когда в этой компоненте нужно вывести имя, мне придется править какое-то третье место которое будет загружать доп. данные, т.е. появляется какая-то зависимость, что не хорошо.Вы же не предлагаете выкачивать всю БД на клиент
я например в этой же компоненте просто укажу фильтр
Компонент сам загружает или отправляет ивент на загрузку, и доп. данные хранятся кешем в общем стейте.
Вы же не предлагаете выводить все данные на одной странице?Данные можно подгружать по требованию, в случае с Redux видимо нужно отправлять ивент на подгрузку данных и сохранение их в общий стейт.
Я обычно сразу прокидываю всю сущность юзера, а там уже компонент сам разберется что ему выводить.Но в сущности юзера есть идентификатор босса и отдел, которые вдруг понадобилось вывести, теперь вам надо править загрузчик этих доп. данных и прокидывать их с самого верха.
В вашем же случае мне надо будет в любом случае написать фильтрУ меня в проектах такой фильтр обычно уже есть готовый и используется в разных местах, т.к. в SPA иногда нужно выводить имя по имеющемуся идентификатору, да и вообще можно без фильтра, главное — правим тот компонент который нужно поправить, а не ходим по всему проекту и правим в разных местах. Про тестирование тут не скажу, нужно сравнивать конкретные реализации.
но я все еще против загрузки данных из фильтров.Фильтр берет данные из сервисов — все норм, и это удобно т.к. не нужно писать костыли в контроллере.
в случае с Redux видимо нужно отправлять ивент на подгрузку данных и сохранение их в общий стейт.
Вы переметнулись на сторону Реакта или используете redux/flux с Ангуляром?
Flux — это плохой пример, потому что предлагает использование глобальных переменных
How to ReactJS