Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про React: static, array, index, key

Что значит "статичность массива" в контексте ключей React

Этот вопрос проверяет понимание условий, при которых можно безопасно использовать индексы массива в качестве ключей в React компонентах.

Короткий ответ

"Статичность массива" означает, что порядок, количество и состав элементов в массиве никогда не изменяются после первоначального рендера. Если массив гарантированно остается неизменным - элементы не добавляются, не удаляются и не меняют порядок - тогда можно использовать индекс массива как ключ. Однако в реальных приложениях такие ситуации редки, поэтому лучше всегда использовать уникальные идентификаторы из данных.

Длинный ответ

Статичность массива - это важное понятие, определяющее возможность безопасного использования индексов в качестве ключей в React.

Что такое статический массив

Статический массив обладает следующими характеристиками:

  • Неизменный порядок - элементы всегда остаются в той же последовательности

  • Постоянное количество - элементы не добавляются и не удаляются

  • Стабильный состав - сами элементы не заменяются на другие

Когда массив можно считать статическим

Пример статического массива

jsx

const MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 
               'July', 'August', 'September', 'October', 'November', 'December'];

function MonthList() {
    return (
        <ul>
            {MONTHS.map((month, index) => (
                <li key={index}>{month}</li>  // Безопасно, так как массив статичен
            ))}
        </ul>
    );
}

Пример НЕстатического массива

jsx

function TodoList({ todos }) {
    // ОПАСНО: массив динамический, элементы могут добавляться/удаляться
    return (
        <ul>
            {todos.map((todo, index) => (
                <li key={index}>{todo.text}</li>  // Может вызвать проблемы
            ))}
        </ul>
    );
}

Проблемы использования индексов в динамических массивах

1. Некорректное обновление состояния

jsx

// Начальное состояние: ['Task 1', 'Task 2', 'Task 3']
// Удаляем первый элемент
// Ключи меняются: 0->'Task 2', 1->'Task 3'
// React может сохранить состояние не для тех элементов

2. Проблемы с производительностью

  • Лишние ререндеры - React не может правильно определить измененные элементы

  • Некорректные анимации - элементы могут анимироваться неправильно

Практические рекомендации

  • Всегда предпочитайте уникальные id из данных

  • Используйте индексы только для действительно статических данных

  • Генерируйте ключи если нет естественных идентификаторов

Как проверить статичность массива

Массив можно считать статическим если:

  • Определен как константа и не изменяется

  • Содержит фиксированный набор элементов (дни недели, месяцы, цвета радуги)

  • Не зависит от props или state компонента

Вывод: Используйте индексы в качестве ключей только для по-настоящему статических массивов, которые гарантированно не изменяются. Для динамических данных всегда используйте уникальные идентификаторы из данных или генерируйте стабильные ключи.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    3

  • Сложность:

    6

Навыки

  • React

    React

Ключевые слова

#static

#array

#index

#key

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию