Подготовка JavaScript перед React. Функции, деструктуризация, map, filter. Часть 1
🖥 Разбираемся с ошибкой о уникальных ключах в React.js ⏩В React рекомендуется использовать уникальные идентификаторы как ключи для дочерних элементов массива. Это делает более эффективным сохранение состояния компонентов и оптимизирует процесс перерендеринга. Если ваши списки не будут изменяться в будущем, то применение индексов как ключей неприемлемо. Использование уникальных ID, связанных с данными, обеспечивает бесперебойное обновление и способствует предотвращению ошибок при управлении состоянием и интерфейсом. // используем уникальные ID const todoItems = todos.map(todo => <li key={todo.id}>{todo.task}</li>); // если список не статический, не используйте индексы в качестве ключей const menuItems = menu.map((dish, index) => <li key={index}>{dish.name}</li>); ⏩Пару простых советов по поводу ключей: — В погоне за "идеальным" ключом. При обновлении компонентов ориентируйтесь на уникальные и стабильные ключи. Откажитесь от использования индексов массива, которые могут вызвать проблемы с производительностью. И забудьте о Math.random(), так как случайные значения не соответствуют принципам работы алгоритма React. — Чудеса управления ключами. Ставьте явные ключи каждому элементу в массиве. Это важно для эффективного обновления DOM. В методе .map() ключи следует присваивать на самом верхнем уровне элемента, чтобы обеспечить плавную работу компонента при рендеринге. — Запасной вариант: ручное создание ключей. Если уникальное свойство недоступно, вам пригодится создание уникальных идентификаторов вручную. Для этого подойдут библиотеки, такие как react-key-index или uuid, предлагающие надёжные методы генерации ключей. 📎 Читать подробнее @javascript_react
Руководство по применению паттерна Event Bus в архитектуре React
Источник: Nuances of Programming Кратко о целях Как-то в процессе работы я натолкнулся на один интересный пример с Event Bus — упрощенный модуль, организующий процесс логирования для аналитики в веб-приложениях глобального масштаба. Он придает большой базе кода предельную ясность. В статье представлены результаты изучения этого эффективного паттерна проектирования. Приступим! Что такое Event Bus? Event Bus — это паттерн проектирования, обеспечивающий взаимодействие между слабо связанными компонентами по принципу “публикатор события-подписчик на событие”...