Size: a a a

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

2020 August 13

И

Иван in React — русскоговорящее сообщество
Rashid Djam
я ведь скинул полный пример)
и никто не знает, как этот полный пример будет использован. кто гарантирует, что вот этот провайдер не будет ререндериться родителем каждые 100мс? я не гарантирую. ты гарантируешь?
источник

P

Pavel in React — русскоговорящее сообщество
Oleg Frolov
лучше сразу задавай вопрос. Так больше вероятности, что получишь нормальный ответ, а не сарказм-комменты
я задавал :)

https://t.me/react_js/992956
источник

PI

Pasha Ivanov in React — русскоговорящее сообщество
не думаю что есть готовая таблетка для этого 🙂 На каждом проекте приходят к своей структуре
источник

RD

Rashid Djam in React — русскоговорящее сообщество
Иван
короч:

вот такой компонент:
const Comp = () => <Child prop={{foo: 0}} />

когда ОН, сам Comp перерендерится, будет передавать ребёнку каждый раз НОВЫЙ объект. а значит Child будет ререндериться каждый раз, когда ререндерится Comp. не важно, по какой причине и когда


а вот такой:
const Comp = () => {
 const prop = useMemo(() => ({ foo: 0}), [])

 return <Child prop={prop} />
}

будет каждый раз передавать ОДИН И ТОТ же объект своему Child. и не важно, из-за чего и когда он ререндерится
вроде разобрался, но спасибо за разъяснение)

а так записать можно?
const Comp = () => {
 return useMemo( ()=> (<Child prop={prop} />) , prop)
}
источник

ei

export default - зло... in React — русскоговорящее сообщество
Rashid Djam
вроде разобрался, но спасибо за разъяснение)

а так записать можно?
const Comp = () => {
 return useMemo( ()=> (<Child prop={prop} />) , prop)
}
Нет
источник

ei

export default - зло... in React — русскоговорящее сообщество
Для такого есть React.memo
источник

PI

Pasha Ivanov in React — русскоговорящее сообщество
У нас есть common для хранения общих фрагментов, остальное кладем в месте вызова, чтобы было удобнее. Но в новом проекте стали делать отдельную папку где лежат чистые вызовы без логики вместе с схемами
источник

RD

Rashid Djam in React — русскоговорящее сообщество
нет, потому что не сработает или сработает но не везде и не всегда?)
источник

ei

export default - зло... in React — русскоговорящее сообщество
Rashid Djam
нет, потому что не сработает или сработает но не везде и не всегда?)
Потому что есть React.memo
источник

RD

Rashid Djam in React — русскоговорящее сообщество
вроде советуют использовать хуки в функциональных компонентах)
источник

MK

Maxim Koylo in React — русскоговорящее сообщество
Rashid Djam
вроде советуют использовать хуки в функциональных компонентах)
ты это сказал против React.memo?
источник

RD

Rashid Djam in React — русскоговорящее сообщество
Maxim Koylo
ты это сказал против React.memo?
не то чтобы против, я прост сказал то что прочитал в доке про хуки)
источник

MK

Maxim Koylo in React — русскоговорящее сообщество
Rashid Djam
не то чтобы против, я прост сказал то что прочитал в доке про хуки)
причем хуки к React.memo?
источник

MK

Maxim Koylo in React — русскоговорящее сообщество
Rashid Djam
не то чтобы против, я прост сказал то что прочитал в доке про хуки)
Для чего React.memo?
источник

PI

Pasha Ivanov in React — русскоговорящее сообщество
=))) загонял
источник

И

Иван in React — русскоговорящее сообщество
Rashid Djam
вроде советуют использовать хуки в функциональных компонентах)
советуют, да. используй. и документацию дочитай до конца. и ютуб посмотри и статьи почитай

memo и useMemo — две разных штуки для разных задач
источник

RD

Rashid Djam in React — русскоговорящее сообщество
вот к примеру, почему не useMemo ?)
источник

RD

Rashid Djam in React — русскоговорящее сообщество
Иван
советуют, да. используй. и документацию дочитай до конца. и ютуб посмотри и статьи почитай

memo и useMemo — две разных штуки для разных задач
ок)
источник

PI

Pasha Ivanov in React — русскоговорящее сообщество
useMemo нет смысла использоваться для хранения компонентов, потому что это не оптимизирует рендер - компонент обернутый в useMemo все равно будет рендериться как ни крути.

а React.memo нужен чтобы реакт мог сравнивать измнение в props прокидываемых в компонент, чтобы если они изменились вызвать рендер вновь.

При этом React.memo никак не влияет на то будет ли рендериться компонент "изнутри" при изменении стейта внутри компонента
источник

ei

export default - зло... in React — русскоговорящее сообщество
Rashid Djam
вот к примеру, почему не useMemo ?)
Потому что ЦЕЛИ РАЗНЫЕ
источник