как ты предлагаешь генкрить айдишники, пример?
Они есть у сущности априори, лыл
const images = [{}, {}].map((img) => ({ id: uuid(), ...img }) или вообще использовать другие поля как ключи, к примеру
нету, мы говорим о неизменяемых списках, например у тя менюшка на 100 элементов и ты себе в цикле перкбрал
У каждого элемента всегда есть что-то уникальное
Ебать а ты в курсе что у тебя при каждом рендере идет генерация ?
отлично, на каждый рендер вызывается функция и у тебя новый айди
ебать а ты в курсе что эта константа объявлена на самом высоком уровне
Откуда ты взял что это в рендере
Пример можно?
Так так, и что ты с этой константой делаешь дальше?
ну, в рендере заюзать? почитай диалог, мб поймёшь о чём речь
Ну допустим список из 5 штук "пойти нахуй" с одинаковой ссылкой
менюшка из 100 элементов, статический список каких-то правил или faq и другого, что нигде во вне не хрвниься
Там уникальные названия / ссылки
названия априори уникальными быть не могут, ты этого не можешь гарвнтировать
Разве тогда все айди не будут одинаковые?
Зачем бизнесу одинаковые названия?
А что если в массив надо добавить чтото или удалить?
ТАК МЫ ПРО СТАТИКУ ГОВОРИМ
А нахуя в статике тогда генерить????
неважно зачем бизнесу, ты априоре не можешь гарантировать уникальность ссылок, имен и ты на что-то опираешься одно, напртсер ссылку и они могут быть одинаковыми, хотя названия разные или наоборот, да ты можешь объединять в строку, но опять же такие вещи как ссылки, имена и все такое не может гарантировать уникальности
не можешь гарантировать уникальность — после получения добавляешь id к каждому элементу сам
ну не качай ты либу, вызови Math.random(), чё доебался?
Был у меня пиздатый опыт с этим в начале
на каждом рендер новые ключи генерятся ,это вообще теряет весь смысл ключей, мало того что это уже более дорогостоящая операция, так еще реакт при изменеии ключей будет считать что это новые сущности и делать доп. работу, вместо того чтобы просто проверить, ключ тот же, иду дальше
ДА КТО ГЕНЕРИТ КЛЮЧИ ПРИ КАЖДОМ РЕНДЕРЕ, ТЫ О ЧЁМ
каждый рендер (запуск функции) у тебя опять мапиться список, где ты запускаешь напрямую uuid()
хорошо, вне компонента вынес, не увидел сообщения, все равно доп оверхед, более дорогостоящая опеоаци, зачем? это даже понимается не легче
мапить массив это дорогостоящая операция?
генерить ацдишники, причем тут массив
вызов 100 функций при запуске приложения — дорогостоящая операция?
зачем это делать если можно не делать, это не дорогостоящая операция в целом, но щачем если одновременно (и самое главное) понятнее и проще индексы
и чо, что значит в нормальных проектах, модно значит перенастроить в чем проблема? значит плохо для этого кейса настроены, потому что аля, индексы злоо да, если проект большой, везде уже так, все настроено, ок, имеет место быть
и кстати, Math.random не гарантирует уникальности, лол
то есть предлагаешь вырубить правило, которое позволяет юзать индекс как ключ? чтобы такой тринижун, как сергей, заскочил на проект и начал везде индексы юзать?
нет конечно) лучше тогда уже либу качать, чем вырубить для всего проекта, прочто я думаю можно более тонко настроить
посчитаешь шанс коллизии? или установишь uuid?
шанс колизии, это от 0 до 1?
Лучше nanoid конечно
да, он может не гарантировать уникальности, но в таком случае там, где происходит коллизия, надо создавать список, который будет превращаться в бинарное дерево при количестве узлов больше 7
даже uuid выдает коллизии дважды у меня случалось, uuid-ы совпадали
ХАХАХАХАХАХАЭПХП
Обсуждают сегодня