SENATOR ARMSTRONG
😱
взгляни на это с другой стороны, всё чётко и понятно, просто много бойлерплейта получается. Мне наоборот нравится такая однообразность, не нужно гадать что делать, всё просто: делаешь экшн, делаешь экшн криейтор, редьюсер, саги/санки, и тд. Красота же :)
SENATOR ARMSTRONG
уложи это всё по папкам и файлам и будет красиво
Sergey
Да соглсасен, так и есть, просто обидно когда у тебя по сути 2+ экшена делают почти одно и тоже только чуть в разных местах и приходится писать много одинакого кода с минимальными отличиями.
Думал это я что-то делаю не так и это можно сделать как-то красивее и правильнее, получается только по папкам раскидать.
SENATOR ARMSTRONG
rovnyart
ну по сути каждый эндпоинт апи должен у тебя быть как-то отражен на фронте, неважно используешь ты редакс или нет, то есть это всегда какие-то сто тыщ функций, код в которых отличается только названием эндпоинта и так по мелочи, где их хранить дело десятое, но тут уж ничего не попишешь) выход - отрастить уже наконец яйца и перейти на graphql и apollo, но нам вот например даже на мысли подобные пока не хватает яиц)
Sergey
Sergey
Sergey
У меня же пока все завязанно на локальном хранилище
Dmitry
Привет
Есть вопрос к экспертам :-)
В приложении возникла потребность реализовать более удобное управление состоянием. Я имею ввиду что сейчас все работает путем передачи пропсов между компонентами.
Эту задачу в реакте решает Редакс. Вопрос в том, решает ли эту задачу использование Хуков, которые идут из коробки и если да, то на чем стоит остановиться и почему.
P.S. Скорее всего разбор такого вопроса уже был, но интересно услышать мнение людей, кто работал с каждой технологией ( и с Редакс и с Хуками)
Спасибо
SENATOR ARMSTRONG
Dmitry
Я хочу понять, смогут ли Хуки решить проблему, которую решает Редакс, потому что есть предпосылки на это, либо же Редаксу нет альтернативы и нужен только он
Alec
Хуки не заменят редакс
SENATOR ARMSTRONG
Kevin
Редаксу всегда есть альтернатива, mobx-state-tree/mobx-keystone как минимум. А хуки малость про другое.
Alec
Скорее классы, редакс тут не при чем
rovnyart
но опять же рискну высказать непопулярное в этом чате мнение - редакс тебе очень маловероятно, что нужен. можно построить огромное крутое приложение и без него, если разделить логику получения данных с сервера и реально необходимые тебе "во всех местах приложения" вещи, таких вещей обычно очень немного - ну максимум там инфа о залогиненном аккаунте, цвете темочки или языке, все это прекрасно уместится в Context, а систему получения и отправки данных на сервер можно отлично написать используя хуки/хоки, реализовав некий DAL-слой
Dmitry
Если коротко Хуки работают со стейтом компонента
Редакс позволяет работать с общим состоянием приложения
И используя Хуки я не решаю задачу передачи пропсов между компонентами, т.е. они как и прежде мне не будут доступны с какого-то одного хранилища
Alec
но опять же рискну высказать непопулярное в этом чате мнение - редакс тебе очень маловероятно, что нужен. можно построить огромное крутое приложение и без него, если разделить логику получения данных с сервера и реально необходимые тебе "во всех местах приложения" вещи, таких вещей обычно очень немного - ну максимум там инфа о залогиненном аккаунте, цвете темочки или языке, все это прекрасно уместится в Context, а систему получения и отправки данных на сервер можно отлично написать используя хуки/хоки, реализовав некий DAL-слой
Все зависит от проекта, редакс очень облегчает работу, но просто так его пихать не смысла конечно, также как и использовать реакт
SENATOR ARMSTRONG
с редаксом любой компонент можешь легко присоединить к стору и брать что нужно
Daniil
SENATOR ARMSTRONG
Dmitry
В принципе все понятно
Сюда можно ссылки отправлять ?
Daniil
rovnyart
только не на бои хабибов махмудов мухоморов ссылки
Alec
Ну это же от опыта зависит, если кто то не понимает зачем редакс и что можно обойтись без него и возможно так будет лучше и удобней, то проблема в осознанности того что ты делаешь)
rovnyart
Значит ты не делал большое приложение
что значит большое?) делаю вот щас большое, личный кабинет одного там сервиса, связанного с физическими устройствами на андроиде, оно все разрастается и разрастается, а редакс мы решили выпилить, когда оно было еще совсем молодым, и с тех пор ни на секунду не пожалели) потому что в прошлом приложении до тошноты остопиздело писать рядом с каждым компонентом actions.js и reducer.js) мы нашли способ все делать без этого, просто отдельный слой DAL и контекст)) но опять же - каждый проект индивидуален, я просто говорю за себя)
Dmitry
Наткнулся я вот на эту статью и все же интересно про Хуки и думал попробовать, потому что привлекает факт того, что сама фича идёт из коробки реакта https://m.habr.com/ru/company/vk/blog/454348/
Daniil
rovnyart
useMemo, useCallback, memoize-this в конце концов
Daniil
Ох лол
Daniil
И как же вы отслеживаете изменение централизированной логики ?
rovnyart
Ох лол
если ты про данные с сервера, то у нас все завернуто в слой с мемоизацией, который экспортирует хуки) в целом я конечно понимаю, почему у всех с этого так горит, но почему-то альтернативную точку зрения тоже никто не хочет принимать) да и хер с ним
Daniil
Например при дебаге
rovnyart
что ты имеешь в виду? у нас в контексте лежат только настройки и данные об аккаунте
Daniil
Ясно
rovnyart
ну мб реально я больших проектов не видел значит)
rovnyart
увижу поменяю мнение
rovnyart
кстати да, сейчас у нас увольняется один, будем искать нового, и я прям предчувствую непростой разговор, почему это у нас нет редакса)))
Dmitry
Я сам очень не много работал с Редакс, но мне он показался сложно реализованным, а теперь когда стал вопрос как дальше работать с состоянием в приложении я решил сперва покопать варианты и понял, что их как бы нет получается)))
Alec
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);
Anonymous
rovnyart
Tokhtar
Капец тут мясо было ночью
Stanislav
Jane
Привет! У меня вопрос такой: есть реакт приложение, с редакс библиотекой, много редьюсеров и большой стор. Что, если простые компоненты перевести на контекст и хуки (useReducer, useContext,..), а сложные с бизнес логикой и сайд эффектами оставить как есть. Будет профит от такого комбиниованного подхода?
Rou
Привет! У меня вопрос такой: есть реакт приложение, с редакс библиотекой, много редьюсеров и большой стор. Что, если простые компоненты перевести на контекст и хуки (useReducer, useContext,..), а сложные с бизнес логикой и сайд эффектами оставить как есть. Будет профит от такого комбиниованного подхода?
Не думаю. Данные с API в store прогружаются только при открытии страницы, где ты их вызываешь, а хранение в разных местах может усложнить поддержку.
Я новичок, не уверен на 100%. Если найдёшь ответ раньше меня, скинь сюда)
Dmitriy
Jane
Не думаю. Данные с API в store прогружаются только при открытии страницы, где ты их вызываешь, а хранение в разных местах может усложнить поддержку.
Я новичок, не уверен на 100%. Если найдёшь ответ раньше меня, скинь сюда)
я просто подумала, если в сторе хранить данные (с сервера), а в контесте стейт какого-то компонента, который с данными не связян, но меняться должен из разных компонентов, например, переключалка какая-нибудь. Стоит ли такие вещи комбайнить в тот большой стор
Dmitriy
Rou
Jane
стоит это как-то отрефакторить и как лучше?
Dmitriy
Jane
я в реакте новичок
Rou
я в реакте новичок
Если для анимации, попробуй использовать useState, useEffect и библиотеку styled components. Должно хватить
Rou
Jane
а что, если я решу перевести стейт менеджмент на mоbx, но при этом у меня останутся какие-то компоненты, построенные на контексте и хуках. Такой подход вообще номальный будет? Чтоб сильно много не перепиливать
Rou
Jane
да
Rou
Не думаю что это лучшая идея
Dmitriy
Jane
например?
Dmitriy
например?
Форм менеджеры, таблицы какие-нибудь жирные, элементы ui - комбобксы, табы
Rou
Есть input поиска, при вводе текста отправляю запрос api, как сделать задержку после того как клиент перестаёт вводит текст 2 сек? Использую recompose и reduxForm
Rou
Просто сейчас отправляется запрос с каждой введённой буквой, а это мобильная вёрстка.. Предполагаю, что теелефон будет виснуть
Rou
Ставить кнопку не вариант)
Vadim
Rou
Yura
Ребята привет всем, очень нужна помощщь. Проблема такая, у меня есть store чере Redux, есть actionCreators, который отправляется динамический АПИ запрос в зависимости на какой я сейчас страничке, примерно выглядит все так:
- я с помощьо withRouter оборачиваю компоненты Users и Posts (это те компоненты) и достаю с this.props.mathc.url в ComponentDidMount и вызываю свой acionCreators который в зависимости от этого юрл посылает определенный АПИ запрос.
- и все вроде хорошо при первой загрузки кмпонента Users все загружает как должно, перехожу на Posts все тоже загружает, но после того как я перехожу с Posts на Users обратно, то выводится ошибка, что не может найти опредеенный елемент с обьекта, и получается что при второй загрузке странице компонент Users берет инфу с Posts, тоесть он не успевает поменять инфу, и я думаю что где-то обькект не успевает копироватся? помогите, пожалуйста, очень нужно!!!!
Yura
MVD
Виктория U
Ребята привет всем, очень нужна помощщь. Проблема такая, у меня есть store чере Redux, есть actionCreators, который отправляется динамический АПИ запрос в зависимости на какой я сейчас страничке, примерно выглядит все так:
- я с помощьо withRouter оборачиваю компоненты Users и Posts (это те компоненты) и достаю с this.props.mathc.url в ComponentDidMount и вызываю свой acionCreators который в зависимости от этого юрл посылает определенный АПИ запрос.
- и все вроде хорошо при первой загрузки кмпонента Users все загружает как должно, перехожу на Posts все тоже загружает, но после того как я перехожу с Posts на Users обратно, то выводится ошибка, что не может найти опредеенный елемент с обьекта, и получается что при второй загрузке странице компонент Users берет инфу с Posts, тоесть он не успевает поменять инфу, и я думаю что где-то обькект не успевает копироватся? помогите, пожалуйста, очень нужно!!!!
С экшеном-то все понятно, у тебя какая-то фигня с роутером, скорее всего. И покажи ошибку.
Daniil