Size: a a a

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

2020 August 08

K

Kirill in React — русскоговорящее сообщество
окей, а в чем проблема мемо, это прям намного затратнее чем вызов нескольких useSelector?
источник

ei

export default - зло... in React — русскоговорящее сообщество
Kirill
окей, а в чем проблема мемо, это прям намного затратнее чем вызов нескольких useSelector?
Да
источник

K

Kirill in React — русскоговорящее сообщество
как это проверить можно?
источник

ei

export default - зло... in React — русскоговорящее сообщество
Но вообще в таких случаях мемо это просто костыль
источник

ei

export default - зло... in React — русскоговорящее сообщество
Исправление не причины, а последствий
источник

K

Kirill in React — русскоговорящее сообщество
Или инфу прочитать про это
источник

A

Andrey in React — русскоговорящее сообщество
Kirill
как это проверить можно?
селектор дергается на изменения стора

мемо на любое изменение внешней среды
источник

K

Kirill in React — русскоговорящее сообщество
Очень странное заявление, насчёт затратности
источник

ei

export default - зло... in React — русскоговорящее сообщество
Kirill
как это проверить можно?
Легко, подпишись на стор и при изменении вызывай селектор и сравнивай с прошлым результатом

А теперь возьми обьект с 20 значениями и начни сравнивать все значения с прошлым обьектом, при чем в 10 раз чаще чем вызов подписчика на стор (в зависимости от того сколько триггеров)
источник

ii

ilia ivanik in React — русскоговорящее сообщество
Andrey
у тебя сейчас Page и userList (который тоже компонент, но почему то в функцию просто вынесен) - объявлены внутри функционального компонента, и создаются на каждый рендер
Большое спасибо, это помогло!! Пытаюсь понять почему оно так работает
источник

A

Andrey in React — русскоговорящее сообщество
ilia ivanik
Большое спасибо, это помогло!! Пытаюсь понять почему оно так работает
потому что реакт каждый рендер видит другой компонент, и не имеет возможности сравнить с предыдущим
(емнип, так это работает)
источник

ii

ilia ivanik in React — русскоговорящее сообщество
Andrey
потому что реакт каждый рендер видит другой компонент, и не имеет возможности сравнить с предыдущим
(емнип, так это работает)
Я лучше просто запомню как можно писать, а как - нет))
Что нельзя внутри компонента использовать функцию для отрисовки части его контента
источник

ei

export default - зло... in React — русскоговорящее сообщество
ilia ivanik
Я лучше просто запомню как можно писать, а как - нет))
Что нельзя внутри компонента использовать функцию для отрисовки части его контента
А лучше просто понять, что постоянность ссылок очень важна для всяких сравнений)
источник

ii

ilia ivanik in React — русскоговорящее сообщество
export default - зло is the side effect
А лучше просто понять, что постоянность ссылок очень важна для всяких сравнений)
я пока не очень догоняю как именно он проводит сравнение)
источник

ei

export default - зло... in React — русскоговорящее сообщество
Собственно поэтому там и фейлится что-то, каждый раз новый компонент с новой ссылкой приходит
источник

И

Ильдар in React — русскоговорящее сообщество
Всем привет есть у кого-нибудь возможность поделится ссылкой на гит с хорошей архитектурой проекта и тд  что бы можно было ровнятся под это
источник

K

Kirill in React — русскоговорящее сообщество
export default - зло is the side effect
Легко, подпишись на стор и при изменении вызывай селектор и сравнивай с прошлым результатом

А теперь возьми обьект с 20 значениями и начни сравнивать все значения с прошлым обьектом, при чем в 10 раз чаще чем вызов подписчика на стор (в зависимости от того сколько триггеров)
т.е как я понял 10 useSelector проще сравнивают старое и новое значение т.к это 10 разных селекторов, а мемо делает map по объекту что бы сравнить, и из-за map дольше сравнение?
источник

А

Александр in React — русскоговорящее сообщество
Александр Бакиматов
ну и тащемта я б вообще запретил на законодательном уровне разжевывать реакт и остальные фреймворки (ну это лично мое мнеине). потому что потом приходят и спрашивают как в реакте отсортировать массив. а что такое программирование - вообще не понимают) типа конечно щас время такое - войти в ойти, но блять, нам же потом не дай бог с ними работать
Абсолютно с вами согласен, как я пологаю у вас большой опыт в программировании, если найдёте время напишите пожалуйста что, по вашему мнению, должен знать человек впервые устраивающийся на работу как junior front-end, чтоб не плодить подобное. Заранее признателен.
источник

K

Kirill in React — русскоговорящее сообщество
Kirill
т.е как я понял 10 useSelector проще сравнивают старое и новое значение т.к это 10 разных селекторов, а мемо делает map по объекту что бы сравнить, и из-за map дольше сравнение?
Про лишние дергания при перерендере родителя я понял, я сейчас конкретно этот момент ещё хочу понять
источник

ii

ilia ivanik in React — русскоговорящее сообщество
export default - зло is the side effect
Собственно поэтому там и фейлится что-то, каждый раз новый компонент с новой ссылкой приходит
а что именно называется "ссылкой"?
источник