Size: a a a

React — русскоговорящее сообщество

2021 January 15

P

Pavel in React — русскоговорящее сообщество
Подскажите насколько камельфо бороться с паразитными ререндерами через useEffect?
Тоесть это выглядит так - я не хочу повышать уровень кода, а решаю это проблему другим костылем?
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Pavel
Подскажите насколько камельфо бороться с паразитными ререндерами через useEffect?
Тоесть это выглядит так - я не хочу повышать уровень кода, а решаю это проблему другим костылем?
шо таки паразитные рендеры и как ты с ними борешься через useEffect?
источник

P

Pavel in React — русскоговорящее сообщество
Александр Бакиматов
шо таки паразитные рендеры и как ты с ними борешься через useEffect?
Паразитные ререндеры - это когда я не понимаю почему ререндерится какой-то компонент.
Вследствии чего, этот ререндеренный компонент каждый раз дергает АПИ.

И я решаю, дергать АПИ через useEffect   - чтобы один раз, а не при каждом ререндере.
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Pavel
Паразитные ререндеры - это когда я не понимаю почему ререндерится какой-то компонент.
Вследствии чего, этот ререндеренный компонент каждый раз дергает АПИ.

И я решаю, дергать АПИ через useEffect   - чтобы один раз, а не при каждом ререндере.
э, так а как еще дергать апи если не в useEffect? O_o
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Pavel
Паразитные ререндеры - это когда я не понимаю почему ререндерится какой-то компонент.
Вследствии чего, этот ререндеренный компонент каждый раз дергает АПИ.

И я решаю, дергать АПИ через useEffect   - чтобы один раз, а не при каждом ререндере.
ну и они не паразитные) лишние могут быть да, но лишние рендеры не должны влиять на логику приложения
источник

AE

Alexey Ermakov in React — русскоговорящее сообщество
я так, мимо проходил
в 2021 запросы к апи из компонента делают, да?
источник

🦜

🦜 in React — русскоговорящее сообщество
Alexey Ermakov
я так, мимо проходил
в 2021 запросы к апи из компонента делают, да?
Всегда
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Alexey Ermakov
я так, мимо проходил
в 2021 запросы к апи из компонента делают, да?
ну либо дергают эвенты которые которые триггерят запросы)))
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Alexey Ermakov
я так, мимо проходил
в 2021 запросы к апи из компонента делают, да?
Фанаты даже кучу либ написали swr, query и тд
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
мне прост интересно откуда человек их дергает если спрашивает можно ли их дергать в useEffect
источник

И

Иван in React — русскоговорящее сообщество
Pavel
Паразитные ререндеры - это когда я не понимаю почему ререндерится какой-то компонент.
Вследствии чего, этот ререндеренный компонент каждый раз дергает АПИ.

И я решаю, дергать АПИ через useEffect   - чтобы один раз, а не при каждом ререндере.
В документации написано «нельзя исполнять сайд-эффекты в рендере, потому что реакт решает что и сколько раз рендерить. исполняйте сайд-эффекты в useEffect»
источник

D

Dmitriy in React — русскоговорящее сообщество
Добрый день, подскажите, диспатчу санку из useEffect которая автозаполняет массив данными в редьюсере, после этого тяну из стора через useSelector данные в компоненте.
Хочу оптимизировать useEffect, чтобы новый диспатч санки происходил только если массив в редьюсере меняется. Если указываю результат возрата селектора, useEffect входит в бесконечный цикл диспатчей
Каким образом это можно решить? Заколбэчить селектор?
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Dmitriy
Добрый день, подскажите, диспатчу санку из useEffect которая автозаполняет массив данными в редьюсере, после этого тяну из стора через useSelector данные в компоненте.
Хочу оптимизировать useEffect, чтобы новый диспатч санки происходил только если массив в редьюсере меняется. Если указываю результат возрата селектора, useEffect входит в бесконечный цикл диспатчей
Каким образом это можно решить? Заколбэчить селектор?
так ты щас и описал цикличную логику же диспатч -> обновление в селекторе -> диспатч -> ...
источник

P

Pavel in React — русскоговорящее сообщество
Александр Бакиматов
мне прост интересно откуда человек их дергает если спрашивает можно ли их дергать в useEffect
Условно, этот компонент у меня рендерится 3 раза. Я не понимаю почему.
Внутри этого компонента getPaymentLink функция - которая создает заказ.

Получается, что у меня создается заказ 3 раза - потому что 3 рендера компонента.

Я оборачиваю это в useEffect и все теперь красиво. Но, наверное, стоило разобраться, откуда у меня 3 рендера
источник

D

Dmitriy in React — русскоговорящее сообщество
Я это и понимаю, поэтому указывать в зависимостях эффекта возвращаемый селектором массив из стора это бред
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Pavel
Условно, этот компонент у меня рендерится 3 раза. Я не понимаю почему.
Внутри этого компонента getPaymentLink функция - которая создает заказ.

Получается, что у меня создается заказ 3 раза - потому что 3 рендера компонента.

Я оборачиваю это в useEffect и все теперь красиво. Но, наверное, стоило разобраться, откуда у меня 3 рендера
наверно стоило документацию лучше почитать а не разбираться откуда рендеры) в рендерах как раз проблем меньше всего
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Pavel
Условно, этот компонент у меня рендерится 3 раза. Я не понимаю почему.
Внутри этого компонента getPaymentLink функция - которая создает заказ.

Получается, что у меня создается заказ 3 раза - потому что 3 рендера компонента.

Я оборачиваю это в useEffect и все теперь красиво. Но, наверное, стоило разобраться, откуда у меня 3 рендера
на всякий случай продублирую https://t.me/react_js/1092548
источник

AE

Alexey Ermakov in React — русскоговорящее сообщество
ну, я к чему
у меня всегда запросы работали, грубо если: (к - компонент, с - стейтменеджер)
к: стейтменеджер, дай данные
с: ща...
с: <смотрит, есть ли данные. если данных нет или данные устарели - загружаем>
к: <полчуает данные и не знает, откуда они, как они появились итд>

я давненько не ковырялся в этом, но скоро нужно будет делать фронт для своего проЖекта
подумал, вдруг супер-современные фронтенд инжиниры сейчас всё в компоненты пихают, решил узнать :)
источник

P

Pavel in React — русскоговорящее сообщество
Иван
В документации написано «нельзя исполнять сайд-эффекты в рендере, потому что реакт решает что и сколько раз рендерить. исполняйте сайд-эффекты в useEffect»
Спасибо
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Alexey Ermakov
ну, я к чему
у меня всегда запросы работали, грубо если: (к - компонент, с - стейтменеджер)
к: стейтменеджер, дай данные
с: ща...
с: <смотрит, есть ли данные. если данных нет или данные устарели - загружаем>
к: <полчуает данные и не знает, откуда они, как они появились итд>

я давненько не ковырялся в этом, но скоро нужно будет делать фронт для своего проЖекта
подумал, вдруг супер-современные фронтенд инжиниры сейчас всё в компоненты пихают, решил узнать :)
нормальная тактика, все заебись, ниче не поменялось
источник