SENATOR ARMSTRONG
😱
взгляни на это с другой стороны, всё чётко и понятно, просто много бойлерплейта получается. Мне наоборот нравится такая однообразность, не нужно гадать что делать, всё просто: делаешь экшн, делаешь экшн криейтор, редьюсер, саги/санки, и тд. Красота же :)
SENATOR ARMSTRONG
уложи это всё по папкам и файлам и будет красиво
Sergey
Да соглсасен, так и есть, просто обидно когда у тебя по сути 2+ экшена делают почти одно и тоже только чуть в разных местах и приходится писать много одинакого кода с минимальными отличиями. Думал это я что-то делаю не так и это можно сделать как-то красивее и правильнее, получается только по папкам раскидать.
rovnyart
ну по сути каждый эндпоинт апи должен у тебя быть как-то отражен на фронте, неважно используешь ты редакс или нет, то есть это всегда какие-то сто тыщ функций, код в которых отличается только названием эндпоинта и так по мелочи, где их хранить дело десятое, но тут уж ничего не попишешь) выход - отрастить уже наконец яйца и перейти на graphql и apollo, но нам вот например даже на мысли подобные пока не хватает яиц)
Sergey
У меня же пока все завязанно на локальном хранилище
Sergey
Я к этому еще прийду, но как я понял пока что GraphQl и Apollo больше нужны когда уже есть бекэнд
Я если что на React Native делаю и там пока что все храню на клиенте, не знаю как это работает в вебе
Dmitry
Привет Есть вопрос к экспертам :-) В приложении возникла потребность реализовать более удобное управление состоянием. Я имею ввиду что сейчас все работает путем передачи пропсов между компонентами. Эту задачу в реакте решает Редакс. Вопрос в том, решает ли эту задачу использование Хуков, которые идут из коробки и если да, то на чем стоит остановиться и почему. P.S. Скорее всего разбор такого вопроса уже был, но интересно услышать мнение людей, кто работал с каждой технологией ( и с Редакс и с Хуками) Спасибо
Dmitry
Я хочу понять, смогут ли Хуки решить проблему, которую решает Редакс, потому что есть предпосылки на это, либо же Редаксу нет альтернативы и нужен только он
Alec
Хуки не заменят редакс
Kevin
Редаксу всегда есть альтернатива, mobx-state-tree/mobx-keystone как минимум. А хуки малость про другое.
Alec
Скорее классы, редакс тут не при чем
rovnyart
но опять же рискну высказать непопулярное в этом чате мнение - редакс тебе очень маловероятно, что нужен. можно построить огромное крутое приложение и без него, если разделить логику получения данных с сервера и реально необходимые тебе "во всех местах приложения" вещи, таких вещей обычно очень немного - ну максимум там инфа о залогиненном аккаунте, цвете темочки или языке, все это прекрасно уместится в Context, а систему получения и отправки данных на сервер можно отлично написать используя хуки/хоки, реализовав некий DAL-слой
Dmitry
Если коротко Хуки работают со стейтом компонента Редакс позволяет работать с общим состоянием приложения И используя Хуки я не решаю задачу передачи пропсов между компонентами, т.е. они как и прежде мне не будут доступны с какого-то одного хранилища
SENATOR ARMSTRONG
Если коротко Хуки работают со стейтом компонента Редакс позволяет работать с общим состоянием приложения И используя Хуки я не решаю задачу передачи пропсов между компонентами, т.е. они как и прежде мне не будут доступны с какого-то одного хранилища
используя хуки ты решаешь задачу локального стейта, вызова каких-то функций при рендере компонента и можешь ещё контекст легко использовать. Ну и оптимизация производительности там. Пропсы по-любому передавать надо из компонентов в компонент, особенно если у тебя есть компоненты-контейнеры с логикой и компоненты которые только что-то рисуют используя данные с контейнеров
SENATOR ARMSTRONG
с редаксом любой компонент можешь легко присоединить к стору и брать что нужно
rovnyart
Все зависит от проекта, редакс очень облегчает работу, но просто так его пихать не смысла конечно, также как и использовать реакт
я согласен, просто недавно мы пришли к выводу, что react/redux пишется уже через слеш, и все просто абсолютно всегда эти вещи совмещают, но это имхо неправильно, куча дополнительного кода экшенов редьюсеров и санков порой реально ну супер-балласт, все можно сделать из коробки красиво и приятно
Dmitry
В принципе все понятно Сюда можно ссылки отправлять ?
rovnyart
только не на бои хабибов махмудов мухоморов ссылки
Alec
Ну это же от опыта зависит, если кто то не понимает зачем редакс и что можно обойтись без него и возможно так будет лучше и удобней, то проблема в осознанности того что ты делаешь)
rovnyart
Значит ты не делал большое приложение
что значит большое?) делаю вот щас большое, личный кабинет одного там сервиса, связанного с физическими устройствами на андроиде, оно все разрастается и разрастается, а редакс мы решили выпилить, когда оно было еще совсем молодым, и с тех пор ни на секунду не пожалели) потому что в прошлом приложении до тошноты остопиздело писать рядом с каждым компонентом actions.js и reducer.js) мы нашли способ все делать без этого, просто отдельный слой DAL и контекст)) но опять же - каждый проект индивидуален, я просто говорю за себя)
Dmitry
Наткнулся я вот на эту статью и все же интересно про Хуки и думал попробовать, потому что привлекает факт того, что сама фича идёт из коробки реакта https://m.habr.com/ru/company/vk/blog/454348/
rovnyart
useMemo, useCallback, memoize-this в конце концов
Daniil
Ох лол
Daniil
И как же вы отслеживаете изменение централизированной логики ?
rovnyart
Ох лол
если ты про данные с сервера, то у нас все завернуто в слой с мемоизацией, который экспортирует хуки) в целом я конечно понимаю, почему у всех с этого так горит, но почему-то альтернативную точку зрения тоже никто не хочет принимать) да и хер с ним
Daniil
Например при дебаге
rovnyart
что ты имеешь в виду? у нас в контексте лежат только настройки и данные об аккаунте
Daniil
Ясно
rovnyart
ну мб реально я больших проектов не видел значит)
rovnyart
увижу поменяю мнение
Dmitry
Наткнулся я вот на эту статью и все же интересно про Хуки и думал попробовать, потому что привлекает факт того, что сама фича идёт из коробки реакта https://m.habr.com/ru/company/vk/blog/454348/
В общем исходя из противоречивых комментариев к статье и интерес к перспективе использовать решение из коробки я решил спросить мнение в чатике ) Как я понял Редакс используется повсеместно. Если искать другое решение, то могут быть трудности с поддержкой приложения, а новым разработчикам нужно будет тратить время, чтобы понять это самое решение
rovnyart
кстати да, сейчас у нас увольняется один, будем искать нового, и я прям предчувствую непростой разговор, почему это у нас нет редакса)))
Dmitry
Я сам очень не много работал с Редакс, но мне он показался сложно реализованным, а теперь когда стал вопрос как дальше работать с состоянием в приложении я решил сперва покопать варианты и понял, что их как бы нет получается)))
Frontend Priest
кстати да, сейчас у нас увольняется один, будем искать нового, и я прям предчувствую непростой разговор, почему это у нас нет редакса)))
Если девелопер не может осилить стейт-менеджер, он вам не нужен. Высказывание применимо для команды проекта или компании.
Serega
Подскажите почему этот код возращает в консоль "undefined" ? const hay = settings.find(function () { const param = "background_image_top"; if (settings[0].key === param) { console.log(typeof settings[0].value) } else if (settings[1].key === param){ console.log(typeof settings[1].value) } else if (settings[2].key === param){ console.log(typeof settings[2].value) } else if (settings[3].key === param) { console.log(typeof settings[3].value) } }); console.log(hay);
Tokhtar
Капец тут мясо было ночью
Jane
Привет! У меня вопрос такой: есть реакт приложение, с редакс библиотекой, много редьюсеров и большой стор. Что, если простые компоненты перевести на контекст и хуки (useReducer, useContext,..), а сложные с бизнес логикой и сайд эффектами оставить как есть. Будет профит от такого комбиниованного подхода?
Rou
Привет! У меня вопрос такой: есть реакт приложение, с редакс библиотекой, много редьюсеров и большой стор. Что, если простые компоненты перевести на контекст и хуки (useReducer, useContext,..), а сложные с бизнес логикой и сайд эффектами оставить как есть. Будет профит от такого комбиниованного подхода?
Не думаю. Данные с API в store прогружаются только при открытии страницы, где ты их вызываешь, а хранение в разных местах может усложнить поддержку. Я новичок, не уверен на 100%. Если найдёшь ответ раньше меня, скинь сюда)
Jane
Не думаю. Данные с API в store прогружаются только при открытии страницы, где ты их вызываешь, а хранение в разных местах может усложнить поддержку. Я новичок, не уверен на 100%. Если найдёшь ответ раньше меня, скинь сюда)
я просто подумала, если в сторе хранить данные (с сервера), а в контесте стейт какого-то компонента, который с данными не связян, но меняться должен из разных компонентов, например, переключалка какая-нибудь. Стоит ли такие вещи комбайнить в тот большой стор
Jane
У вас ховеры кнопулек в глобал стейте?)
в глобал стейте есть состояние попапа, например, и мне это не очень нравится
Jane
стоит это как-то отрефакторить и как лучше?
Rou
Ааа ну эти вещи я через хуки делаю
А в стор только form values и данные с api
Dmitriy
в глобал стейте есть состояние попапа, например, и мне это не очень нравится
Конечно это не нужно в глобал сторе, он и без этого монструозен.
Jane
я в реакте новичок
Rou
я в реакте новичок
Если для анимации, попробуй использовать useState, useEffect и библиотеку styled components. Должно хватить
Jane
а что, если я решу перевести стейт менеджмент на mоbx, но при этом у меня останутся какие-то компоненты, построенные на контексте и хуках. Такой подход вообще номальный будет? Чтоб сильно много не перепиливать
Jane
да
Rou
Не думаю что это лучшая идея
Jane
например?
Dmitriy
например?
Форм менеджеры, таблицы какие-нибудь жирные, элементы ui - комбобксы, табы
Rou
Есть input поиска, при вводе текста отправляю запрос api, как сделать задержку после того как клиент перестаёт вводит текст 2 сек? Использую recompose и reduxForm
Rou
Просто сейчас отправляется запрос с каждой введённой буквой, а это мобильная вёрстка.. Предполагаю, что теелефон будет виснуть
Rou
Ставить кнопку не вариант)
Yura
Ребята привет всем, очень нужна помощщь. Проблема такая, у меня есть store чере Redux, есть actionCreators, который отправляется динамический АПИ запрос в зависимости на какой я сейчас страничке, примерно выглядит все так: - я с помощьо withRouter оборачиваю компоненты Users и Posts (это те компоненты) и достаю с this.props.mathc.url в ComponentDidMount и вызываю свой acionCreators который в зависимости от этого юрл посылает определенный АПИ запрос. - и все вроде хорошо при первой загрузки кмпонента Users все загружает как должно, перехожу на Posts все тоже загружает, но после того как я перехожу с Posts на Users обратно, то выводится ошибка, что не может найти опредеенный елемент с обьекта, и получается что при второй загрузке странице компонент Users берет инфу с Posts, тоесть он не успевает поменять инфу, и я думаю что где-то обькект не успевает копироватся? помогите, пожалуйста, очень нужно!!!!
Yura
это мой action
Виктория U
Ребята привет всем, очень нужна помощщь. Проблема такая, у меня есть store чере Redux, есть actionCreators, который отправляется динамический АПИ запрос в зависимости на какой я сейчас страничке, примерно выглядит все так: - я с помощьо withRouter оборачиваю компоненты Users и Posts (это те компоненты) и достаю с this.props.mathc.url в ComponentDidMount и вызываю свой acionCreators который в зависимости от этого юрл посылает определенный АПИ запрос. - и все вроде хорошо при первой загрузки кмпонента Users все загружает как должно, перехожу на Posts все тоже загружает, но после того как я перехожу с Posts на Users обратно, то выводится ошибка, что не может найти опредеенный елемент с обьекта, и получается что при второй загрузке странице компонент Users берет инфу с Posts, тоесть он не успевает поменять инфу, и я думаю что где-то обькект не успевает копироватся? помогите, пожалуйста, очень нужно!!!!
С экшеном-то все понятно, у тебя какая-то фигня с роутером, скорее всего. И покажи ошибку.