Александр
Дима
можно лишь порадоваться, если локального стейта реакта хватило для всего
Nikolai
Не шутка
Ну удачи тогда с чем то большем чем тудушка
Farik
Ребят такой вопрос, я правильно понимаю если юзать редакс то все запросы к АПИ проходят через редакс (т.е. он обращается заполняет store, дальше в приложении я уже вытягиваю просто со store) и при этом если данные не изменились мне не нужно будет посылать повторный запрос к апи для получения данных, так как я могу вытянуть со стора?
Ilhom
mapStateToProps
Ilhom
Либо селекторы если не ошибаюсь
Ilhom
Ну, даже селекторы надо использовать внутри mapStateToProps
Farik
Пасеба)
Александр
Нет, redux это просто общий стор, если тебе не нужно шарить данные из API, то и в redux их можно не добавлять
+ наличие глобального стора, не означает что нужно Весь вообще стейт туда пихать, как некоторые пытаются
SaM
Нет, redux это просто общий стор, если тебе не нужно шарить данные из API, то и в redux их можно не добавлять
Асинхронщину же проще через redux-овский middleware сделать, чтобы меньше логики в компоненте было, не?
Sergey
Асинхронщину же проще через redux-овский middleware сделать, чтобы меньше логики в компоненте было, не?
если тебе в redux эти данные не нужны, то без проблем можно делать fetch в cdm
Sergey
Асинхронщину же проще через redux-овский middleware сделать, чтобы меньше логики в компоненте было, не?
отличный пример - админка с микросервисами. От некоторых микросервисов данные нужны для всего приложения, а от других микросервисов - только на 1 странице в админке
SaM
отличный пример - админка с микросервисами. От некоторых микросервисов данные нужны для всего приложения, а от других микросервисов - только на 1 странице в админке
Ну с одной стороны да, а с другой - один прогер в cdm у одного компонента добавил, второй в глобал сторе не нашёл - в другом компоненте в cdm добавил и пошло поехало :-)
Sergey
значит у ваших прогеров такой уровень 🤷‍♂️
SaM
значит у ваших прогеров такой уровень 🤷‍♂️
что значит - "у ваших" :-)? Это у ваших такого не бывает?
Nikolai
Да какие микросервисы? Вот пример банальный: автокомплит нужно в селект подгружать - вы же не будете это в стор тащить
SaM
нет, у нас code review есть
Ну когда два программиста, то да, так можно :-)
Sergey
14
Volodymyr
Ох уж эти любители комплексного подхода локального стора компонента и глобального стора )))
Nikolai
Будем
Если даже это не данные уровня приложения и в любом другом компоненте они никогда не будут нужны?
Cenator 🐈
Если даже это не данные уровня приложения и в любом другом компоненте они никогда не будут нужны?
Это тут не при чем, в любом случае хранение данных в компонентах это плохо, другое дело что желательно не в одном глобальном сторе хранить
Дима
Если даже это не данные уровня приложения и в любом другом компоненте они никогда не будут нужны?
прикол в том, что в таком случае смысл хранить данные в реакте отпадает окончательно
Nikolai
Иии?)
Александр
Тем что данные в реакте хранятся
Присоединяюсь к вопросу, что тут крамольного?
Cenator 🐈
Страница размаунтилась, потом снова замаунтилась = новый запрос, хотя данные там те же
Volodymyr
Неконсистентно
Александр
Volodymyr
почему?
Уже отвечают же, что хранить данные по хорошему в одном месте. Но разные створы.
Дима
слыша мантру "эти данные никогда не будут нужны другому компоненту" всегда представляю себе инпут, ни с чем не связанный, ни от кого не зависящий, висящий в вакууме в пустоте
Nikolai
Страница размаунтилась, потом снова замаунтилась = новый запрос, хотя данные там те же
Какая страница? Я про автокомплит в селекте привёл пример - по инпуту пользователя приходит подсказка, всё
Дима
откуда приходит? из вакуума материализуется?
Дима
а запросы к серверу автокомплит тоже сам отправляет?
Nikolai
Да
Дима
и результатами ни с кем не делится?
Nikolai
Нет
Дима
и плавает в канистре континуума
Volodymyr
и результатами ни с кем не делится?
Самодостаточный авткомплит ещё и жадный
Дима
вопросов больше не имею 😸
Nikolai
У вас есть форма с поиском отеля к примеру. В ней есть инпут - название города, пользователь начинает вводить название и по дебаунсу идёт обращение к апи, который выдает список городов по совпадению строки. Пользователь выбирает город из выпадашки или вводит сам руками. Зачем мне грузить это в стейт менеджер? Это данные которые нужны одному компоненту в конкретный момент времени, которые он может использовать только для того чтобы свой внутренний стейт изменить если пользователь выберет город из автоподсказки.
Cenator 🐈
Страница размаунтилась, потом снова замаунтилась = новый запрос, хотя данные там те же
Cenator 🐈
Надеюсь со второго раза понятно о какой странице речь
Sergey
Страница размаунтилась, потом снова замаунтилась = новый запрос, хотя данные там те же
новые запросы идут не из-за маунта страницы а из-за ввода пользователя
Sergey
чтоб не грузить пользователю 10к городов
Cenator 🐈
Это не много
Sergey
когда у тебя 3g это много
Cenator 🐈
Страница размаунтилась, потом снова замаунтилась = новый запрос, хотя данные там те же
Ладно, если взять пример с меньшим количеством данных, где не нужна фильтрация через бэк, это остается в силе
Volodymyr
новые запросы идут не из-за маунта страницы а из-за ввода пользователя
А в чем проблема что бы ввод пользователя дергал экшен ??)))
Maxim
Да не, ну правда же, не всегда нужно такие данные в глобальный стейт пихать. Есть, к примеру, сторонние виджеты (DaData, к примеру), сам ходит на свой сервер, сам отображает свои подсказки, ни от кого не зависит. Норм же.
Sergey
А в чем проблема что бы ввод пользователя дергал экшен ??)))
в том что его нужно писать, а потом еще чистить
Volodymyr
в том что его нужно писать, а потом еще чистить
А типо обычный стейт не нужно чистить ?
Sergey
А типо обычный стейт не нужно чистить ?
нет, компонент размаунтится при закрытии формы
Volodymyr
нет, компонент размаунтится при закрытии формы
А если это хедер ? И форма не закрывается.
Sergey
живой пример есть?
Maxim
это называется локальный статический стейт
Да, локальный стейт. А почему его нельзя юзать? Или я не понимаю суть дискуссии?
Volodymyr
живой пример есть?
Ну живой пример, у нас хедер доступен везде форма доступна везде. Она не размаунтитьсЯ до того момента пока мы не закроем приложение.
Дима
Да, локальный стейт. А почему его нельзя юзать? Или я не понимаю суть дискуссии?
суть дискуссии — есть только глобальный статический редух и локальный динамический реакт
Дима
все промежуточные варианты демонстративно игнорируются ¯\_(ツ)_/¯
Nikolai
Вопрос просто был изначально о том мол всю ли асинхронщину нужно выносить в стейт менеджер? Есть кейсы когда не нужно
Maxim
суть дискуссии — есть только глобальный статический редух и локальный динамический реакт
Я, наверное, глупость спрошу, но не очень понимаю значение терминов "динамический" и "статический" в данном контексте. Можешь пояснить? Статический стейт - это какой?
Дима
да, потому что до редуха — внезапно — далеко тянуться, потому что это неудобно
Дима
а знаете что ещё более неудобно? тестировать view, в который понапихали запросов к серверу