.
document.getElementById
надеюсь это шутка
Jurij
Да ладно, и почему?
.
потому что через реф ты на 100% можешь быть уверен что дом отрендерен
Jurij
А он не задал такого ограничения.
.
и не нужно каждый раз дергать getElementById
Китикет
ребят, после успешного заказа вы обычно создаете для этого стейт отдельный типа order: true? чтобы например показать попап успешного заказа?
И правильно сказал кто-то, это индивидуально, зависит от конкретного кейса, чтобы что-то определенное говорить надо полностью видеть код и понимать ситуацию
Natalia
во-первых она, а во-вторых это уже грязными руками
Ivan
Народ, подскажите плз способ разрешать одновременное воспроизведение только одного audio ?
Иметь только один audio, повесить на него событие onended, которое выставляет src
Игорь
Такой вопрос. Есть массив из несколких сотен елементов, каждый рендерится в цикле в ячейчки. Каждому реакт-елементу нужно задать уникальный ключ. Уникальх id нет. Не рекомендуется использовать индексы, как ключи. Что использовать взамен?
Игорь
Значения могут повторяться в массиве
Игорь
это табличка, там может быть сортировка по колонкам
Игорь
нет, массив формируется на клиенте из дата-сета
Jurij
Весь прикол в том, что для тебя "не рекомендуется" - не актуально.
Oleg
Такой вопрос. Есть массив из несколких сотен елементов, каждый рендерится в цикле в ячейчки. Каждому реакт-елементу нужно задать уникальный ключ. Уникальх id нет. Не рекомендуется использовать индексы, как ключи. Что использовать взамен?
Индекс не рекомендуется потому что при удалении мы получим полный ререндер. Если тебе не нужно удалять/перемещать элементы - индексы - вполне себе ок. Поправьте, если не прав.
Daniil
Ну пока формируешь закинь id через тот же uuid если так хочешь
Китикет
нет, массив формируется на клиенте из дата-сета
Так возьми добавь айдишники из nanoid на моменте генерации, главное чтобы они в рендере не генерились
Jurij
Если оперировать элементами массива не надо - индексы самое то. Даже если ты сгенерируешь как-то случайные\уникальные ключи - это не лучше чем индекс.
Mike
нет, массив формируется на клиенте из дата-сета
в датасете точно есть данные в строковом формате, главное что бы уникальные были, бери любые
Jurij
Ну да, ключем может быть и строка в сотни символов.
Китикет
Если оперировать элементами массива не надо - индексы самое то. Даже если ты сгенерируешь как-то случайные\уникальные ключи - это не лучше чем индекс.
А потом может быть придется оперировать, и будешь в любом случае добавлять) Почему изначально не сделать качественно?
Daniil
Потом 🙃
Jurij
=)) Если этот вопрос рассматривать "в общем смысле" - то он противоречит YAGNI https://ru.wikipedia.org/wiki/YAGNI
Игорь
если быть более точным, там массив объектов. Каждый объект - это строка. Каждое значения по ключу - ячейка таблицы. Есть вариант задать комбинацю индеска строки + индекс ячейчки. Хотелось узнать, как это будет на производительности сказыватся
Daniil
У тебя есть профайлер и лапки, вперёд
Китикет
ребят, после успешного заказа вы обычно создаете для этого стейт отдельный типа order: true? чтобы например показать попап успешного заказа?
Но вообще если я правильно представляю, это просто делается через колбек, типа такого productsActions.makeOrder({ id, onSuccess: () => { openModal('after-successful-order') } })
Mike
Alexey
функцию хеширования какую-нибудь возьми,
Oleg
каждый обьект - это строка?) Шо?
Всё есть объект. (с) Будда.
Китикет
Всё есть объект. (с) Будда.
Строка - не обьект)
Oleg
Строка - не обьект)
Ну... В принципе да. Но иногда нет.
Mike
Строка - не обьект)
поспорить можно, методы строки же есть
Игорь
каждый обьект - это строка?) Шо?
массив объектов. Идем по массиву в цикле - и по ключам объекта. Каждое значение по ключу - значение в ячейке таблицы
Mike
под капотом все равно берет методы обекта
Alexey
на основе данных хэш считай, при сортировке перерисуется только контейнер, если у тебя не все в одном компоненте
Китикет
поспорить можно, методы строки же есть
Обращение к свойствам возможно на тот момент, когда во время выполнения строка оборачивается в конструктор, а до этого это просто примитив
Oleg
поспорить можно, методы строки же есть
Поспорить нельзя. Он просто становится объектом на время 🙃
Mike
жс спроектировали за 10 дней вроде
Mike
или 7?
GG
жс спроектировали за 10 дней вроде
поэтому на нем проэкты за 10 дней пишутся?)
Oleg
7, 7. На восьмой создали es6.
Ivan
В джсе ооп мнимое)
GG
и потом становятся не подерживаемыми. что проще заного написать
Китикет
Срок жизни 3-5 лет обычно, зависит от качества
Mike
7, 7. На восьмой создали es6.
на каком полезли баги? 3?
Oleg
В джсе ооп мнимое)
Уже нет. Вообще на счёт классов можно холивар развести.
Китикет
Ну class это просто сахар) С другой стороны это везде сахар для операций более низкого уровня)
Oleg
на каком полезли баги? 3?
На всех. Function is not a function 🙃
Ivan
Уже нет. Вообще на счёт классов можно холивар развести.
Это все сахар. В дсж нельзя функции записанные в объект называть методами
GG
В джсе ооп мнимое)
Вы про какое ооп, которое первым появилось, или которое как в джаве выродилось из первого?
Jurij
Даже функция это объект
Oleg
Это все сахар. В дсж нельзя функции записанные в объект называть методами
И чё? Меня удивляет высказывание про сахар. Если что-то выглядит как классы, плавает как классы и крякает как классы, то это классы.
Китикет
Это все сахар. В дсж нельзя функции записанные в объект называть методами
Ну вот это вряд ли, слово метод вовсе не подразумевает что он должен находиться именно в классе в привычном его понимании, это вообще очень поверхностный термин без технического углубления
Alexander
Есть такая конструкция <Dropdown><UserHeaderWidgetContainer/></Dropdown>. Как получить стили из Dropdown в UserHeaderWidgetContainer? Или так не делают?
Ivan
И чё? Меня удивляет высказывание про сахар. Если что-то выглядит как классы, плавает как классы и крякает как классы, то это классы.
Таким образом можно и на чистых фп сделать обёртки для ооп и называть это ооп языками, лол
Oleg
Это норм практика?
Ну, зависит от задачи, конечно. Может, тебе нужны классы?
Ivan
Почему нет? Если они реализуют ооп, то ок.
Ооп для ФП - это антипаттерн. Но к сожалению это не работает в другую сторону
Jurij
Это норм практика?
Мало данных дал. В каком формате стили? Стили могут быть строкой, могу объектом, а могут фаайлом.
Jurij
В любом случае вынеси их куда-то и импортируй так ли иначе
Alexander
Мало данных дал. В каком формате стили? Стили могут быть строкой, могу объектом, а могут фаайлом.
CSS модуль. А они не будут дублироваться? Я же их буду импортировать в несколько компонентов