Спасибо за видео. Предлагаю третий вариант прокидывания ключа в AppCircle. На мой взгляд он легче для восприятия, хотя сути не меняет: function setItemValue(i) { return (newValue) => { let newItems = [ ...items, { ...items[i], value: newValue } ]; setItems(newItems); } } let itemsElem = items.map((item, i) => )
Реакт - это ошибка природы, созданная хайпом. В нем одни костыли подпирают другие. А Редакс - вообще дичь. ФБшники всегда славились своей криворукостью) Тут, если этих айтемов будет штук 200, то изменяя один айтем, надо копировать весь массив. А если 1000? 2000? Датагрид с заказами активно продающего магазина, например.
Массив в ЖС и так под капотом копируется не раз по мере расширения. Там алгоритм такой, что когда создается аррай без заданной длины, то ему выделяет Н слотов. Когда ленгс массива вырастет до этого Н, выделяется новая память размером Н + Х новых слотов. И массив копируется весь в эту новую область памяти. Может меп оптимизирован внутри. И спред массива. Но если нет, то куча копирований - одно явное, и куча неявных, зависимо от размера. Поэтому современные сайты и тормозят некисло так) Реактовские на планшете с гигом ОЗУ если открывать - это видно.
@@olezhonnv3215 здесь больше вопрос уже не к реакту, а к языку. При копировании массива на новое место в памяти размер массива может быть с определенным запасом. А на планшете с 1 гб озу даже ОС будет тормозить. Критиковать инструмент легко в рамках определенного кейса, но если решили этим заниматься, то стоит сказать о лучшем решении.
спасибо за такое подробное объяснение
Ждём новые уроки 🎓 Берём пользу от просмотренных 🎞📽
Благодарю 📊
Спасибо за видео. Предлагаю третий вариант прокидывания ключа в AppCircle. На мой взгляд он легче для восприятия, хотя сути не меняет:
function setItemValue(i) {
return (newValue) => {
let newItems = [ ...items, { ...items[i], value: newValue } ];
setItems(newItems);
}
}
let itemsElem = items.map((item, i) => )
Реакт - это ошибка природы, созданная хайпом. В нем одни костыли подпирают другие.
А Редакс - вообще дичь.
ФБшники всегда славились своей криворукостью)
Тут, если этих айтемов будет штук 200, то изменяя один айтем, надо копировать весь массив.
А если 1000? 2000? Датагрид с заказами активно продающего магазина, например.
Массив в ЖС и так под капотом копируется не раз по мере расширения.
Там алгоритм такой, что когда создается аррай без заданной длины, то ему выделяет Н слотов. Когда ленгс массива вырастет до этого Н, выделяется новая память размером Н + Х новых слотов. И массив копируется весь в эту новую область памяти.
Может меп оптимизирован внутри. И спред массива. Но если нет, то куча копирований - одно явное, и куча неявных, зависимо от размера.
Поэтому современные сайты и тормозят некисло так) Реактовские на планшете с гигом ОЗУ если открывать - это видно.
@@olezhonnv3215 здесь больше вопрос уже не к реакту, а к языку. При копировании массива на новое место в памяти размер массива может быть с определенным запасом. А на планшете с 1 гб озу даже ОС будет тормозить. Критиковать инструмент легко в рамках определенного кейса, но если решили этим заниматься, то стоит сказать о лучшем решении.
@@olezhonnv3215 Если пишите английские слова, то пишите их на английском. Не будьте русским ушлепком.