Anonymous
Скинь свой запрос
Самый простой запрос axios.post(url).then(ожидание ответа). Сервер железо купленное характеристик хз не знаю)
Антон
Он прав, бы тоже задал этот вопрос, очень часто бывает что человек делает то что ему делать не нужно, так что с его стороны это был нормальный вопрос
Я не против писать все с чистого листа что бы не было нагружанности.) Но блин чувак Текстареа, выполняет простую роль и этот пак не нагрузит приложуху если ее использовать с умом) Но писать мне о том что я использую паки на каждый чих не зная того использую ли я их или нет 🤷‍♂️🤷‍♂️🤷‍♂️ И вопрос был не о производительности, а конкретно поставленный вопрос. А он начал нести мне за производительность. Вон чувак понял вопрос кинул ответ спасибо ему огромное) А этот тип просто начал мне заливать как нубу какому то о производительности 🤦‍♂️
Александр
Anonymous
Александр
Самый простой запрос axios.post(url).then(ожидание ответа). Сервер железо купленное характеристик хз не знаю)
Бекенд ваш? На чем написан, express если то может забыли респонс отправить?
Anonymous
Бекенд ваш? На чем написан, express если то может забыли респонс отправить?
На java просто сервак обрабатывает и записывает овермного данных и на это уходит времени много
Александр
Сервак свой
Так проблема не во фронте, если через curl или браузер дернуть ваш сервер то все хорошо или тоже самое?
Александр
На java просто сервак обрабатывает и записывает овермного данных и на это уходит времени много
Ну если прямо Овер много и Овер долго то лучше тут применить иной подход
Anonymous
На клиенте реализован добавление файла excel сервак там что то делает и дает ответ. А вот клиент недожидаясь ответа
Александр
Например?
Шлете запрос на выполнение тяжелой и долгой задачи, запрос ставит задачу в очередь и возвращает идентификатор задачи со статусом готов / в работе / фейл, далее ещё один ендпоинт делать который периодически опрашивать с идентификатором задачи на предмет готовности
Ivan
И какой флоу интересно он ломает
Начинается - реализовать экшен с сайд эффектами. Функция n-го порядка, что делает стор тупо медленным
Ivan
А без санка собсна что есть?
Есть идея о том что для апи какого-нибудь лучше самому написать мидлварь. Асинхронные экшены - один раз сделал и все, они готовы
Китикет
Конкретные цифры влияния на какую-то там скорость стора будут?)
Китикет
Нафига самому писать подобие санка, когда оно уже за тебя придумано, и со всеми составляющими
Китикет
Хорошо хоть сажи (саги) не советуешь
Китикет
что не так с сагами?
Все так, просто не нужны в 99% проектов
Ivan
Нафига самому писать подобие санка, когда оно уже за тебя придумано, и со всеми составляющими
Тебе все-равно придется писать логику для работы с апи. Писать наподобие санка - не придется
Китикет
Господи
Ivan
вы там майнеры пишите на редаксе чтоли
Майнеры только на jQuery, вы что?
Китикет
Завел файлик, сделал оттуда кучу экспортов, обьединил под названием вроде somethingAPI, в санке взял заюзал, в чем проблема не пойму
Китикет
Может я не в курсе как с апи надо работать, хз 😁
Bogdan
React.lazy юзает кто? смысл вообще есть от этого?
Китикет
Хотя я слышал и даже видел что там какие-то мидлвары под редакс пишут для подобных целей, по-моему это дикий БРЕД, и мидлвары вообще не для того там есть
Ivan
Завел файлик, сделал оттуда кучу экспортов, обьединил под названием вроде somethingAPI, в санке взял заюзал, в чем проблема не пойму
В том что вся логика идет на экшен, и никакой декларативщины - дублировать код везде где нужно заюзать апи - такое себе
Китикет
Логгер - пжлст, еще что-нибудь для глобальной цепочки обработки экшнов - пжлст, мидлвара для работы с конкретной апишкой, которая работает глобально для всех экшнов (и там внутри надо это предусмотреть) - нет, спс
Китикет
Не сломает, но какой смысл это делать в мидлварах
Китикет
Я конечно не специалист по терминологии, но чисто семантически это использование инструмента не по назначению, но доказать это не смогу потому что понятие там очень размытое, так что имхо
Ivan
Не сломает, но какой смысл это делать в мидлварах
Меньше повторения кода, более декларативный код, менять логику работы с апи нужно будет только в одном месте
Китикет
Вообще меня удивляет стремление людей пихать все в редакс
Китикет
Ух какая декларативность, держать в голове что там есть какая-то мидлвара на высоком уровне
Ivan
Да и апи в большинстве случаев дёргается постоянно
voix
Пишешь так, пишешь, вроде все нормально, заходишь в чат, а там говорят, что ты неправильно все юзаешь или юзаешь говно и становится грустно.
Китикет
В одном месте я тоже могу менять, никаких проблем) Делаешь обертку над http клиентом, там пишешь нужную логику, хоть токены рефрешь
Andrey
Меньше повторения кода, более декларативный код, менять логику работы с апи нужно будет только в одном месте
какая разница, написать эту логику в санке/саге, или в миддлваре, откуда в миддлваре буст по декларативности, и меньше повторения кода? другое дело, что сильно размывается ответственность, миддлварь растет как на дрожжах
Китикет
В одном месте я тоже могу менять, никаких проблем) Делаешь обертку над http клиентом, там пишешь нужную логику, хоть токены рефрешь
В принципе у меня везде так и сделано: - обертка над http клиентом, которую я называю request - плоская коллекция запросов для удобного использования, все это дело экспортируется - import * as requests from '....' - export { requests as someAPI }
Bogdan
https://www.npmjs.com/package/react-router-config react-router-config стоит пробовать заюзать?
Китикет
А используется это достаточно удобно в санках, но на огромных проектах с очень сложной логикой - хз
Китикет
https://www.npmjs.com/package/react-router-config react-router-config стоит пробовать заюзать?
Можешь, кстати его очень легко самому написать, если хочешь что-то чуток по-другому
Ivan
какие 10-15 строчек, можно конкретный пример?
const APICall = (endpoint, method, query, payload) => new Promise((resolve, reject) => { let req = request[method.toLowerCase()](`${API_URI}${endpoint}`) if (query) req.query(query) if (payload) req = req.send(payload) req .then(({ body }) => resolve(body)) .catch(error => reject(error)) })
Китикет
Единственная проблема, что у них вообще доки нет для конфига, много мест не покрыто интересных
Oleg
Может кто сказать, что не так с флагами? Учитывая то, что IDE говорит о том, как эти влаги называются в функции.
Oleg
Понятное дело, если их много - не ок, но если 1 почему нет?
Китикет
Китикет
На низком уровне не очень, в апишке (верхний уровень, для внешнего доступа) будет норм, но вообще зависит от ситуации
Ivan
и как тут понять, что в миддлваре писать меньше, чем на тех же санках?
Просто вызываешь nextaction передавая результат этого промиса
Andrey
Просто вызываешь nextaction передавая результат этого промиса
просто диспатчишь следующий экшн, передавая результат этого промиса
Oleg
А ну в целом, да.
Китикет
Блин, а зачем строить какую-то пайпу из запросов, когда всю логику можно плоско описать в санке?
Ivan
просто диспатчишь следующий экшн, передавая результат этого промиса
Только ты это диспатчить будешь везде где нужен вызов апи, а потом придется в экшен пихать много логики, для того чтобы просто ошибку в стор запихнуть
Andrey
Только ты это диспатчить будешь везде где нужен вызов апи, а потом придется в экшен пихать много логики, для того чтобы просто ошибку в стор запихнуть
я задиспатчу 2 экшена, ровно как и в миддлваре ты бы сделал (начало запроса, и конец) много логики - трайкетчем обернуть и диспатчнуть третий в кетче? мы точно об одном сейчас говорим?
Anonymous
Я могу дать функцию генерации матрицы, нужно будет самому отрендерить
Hi. http://projects.wojtekmaj.pl/react-datetimerange-picker. Даты, часы, минуты, секунды. Не использует moment.js. У чела есть .pdf в Реакт страницах показывать: http://projects.wojtekmaj.pl/react-pdf/
Andrey
Мне кажется он конкретно под свою архитектуру говорит, но хз У меня вообще таких проблем нет
ну какая бы она у него ни была, клиент-сервер в общем случае предполагает запрос-ответ) в целом на запрос у меня было 3 экша - начало, успех, ошибка с чисто функциональной точки зрения, где их отдавать, внутри миддлвары, или через миддлвару посредством санок/саг - без разницы но с точки зрения семантики, конвеншнов, и мб пару специфичных моментов, логику пихать в миддлвару - сомнительная затея
Китикет
Я бы посмотрел конкретные примеры про то как выглядит нормальная по его мнению работа с апи через мидлвару, и то как бы он написал с санком где якобы проблемы какие-то есть Тогда я бы конкретнее сказал как сделать можно
Ivan
Мне кажется он конкретно под свою архитектуру говорит, но хз У меня вообще таких проблем нет
Я ещё раз говорю - это не декларативный подход и это меняет порядок функции экшена
Andrey
Я ещё раз говорю - это не декларативный подход и это меняет порядок функции экшена
почему писать логику в миддлваре декларативно, а в санках - нет? о: то, что экшн из замыкания вызывается - даже смешно обсуждать, в реакт то чате где вложенность рендер функций может за 100 переваливать
Китикет
Вообще я недавно пришел к выводу что такие споры почти бесполезны, у каждого что-то свое в голове, с кодом проще
Китикет
Санки - не мидлвара?
Ну это мидлвара, только мы не напрямую ее используем, а юзаем возможности которая она предоставляет снаружи
Oleg
Видимо, у каждого свой взгляд на декларативность.
Китикет
Декларативность это крайне субьективная штука, у каждого она до разных уровней прорастает, так скажем)
Bogdan
Можешь, кстати его очень легко самому написать, если хочешь что-то чуток по-другому
а например в react-router-dom можно сделать роуты по доступам, в конфиге такое возможно?