Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про React: drag, drop

Как реализовать вложенный drag-and-drop в React-приложении?

Вопрос нужен, чтобы оценить, умеет ли кандидат реализовывать сложное взаимодействие с вложенными структурами.

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

Вложенный drag-and-drop строится вокруг иерархии данных, а не DOM. При перетаскивании меняется структура данных, а UI лишь отражает эти изменения. Для реализации используют библиотеки или собственную логику с расчётом целевых позиций. Ключевая сложность — корректно обновлять вложенные узлы.

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

Drag-and-drop в React — это всегда работа с состоянием, а не с прямыми DOM-манипуляциями.

Ключевая идея

Перетаскивается не элемент интерфейса, а:

  • идентификатор узла

  • его позиция в дереве

UI — это проекция структуры данных.

Основные шаги реализации

  1. Представление данных

    • дерево с id и children

    • явные ссылки на родителей

  2. Обработка drag-событий

    • определение source

    • определение target

    • проверка допустимости вложенности

  3. Обновление структуры

    • удаление узла из старого места

    • вставка в новое место

Пример логики изменения данных

// removeNode(tree, sourceId)
// insertNode(tree, targetId, node)

Типичные сложности

  • предотвращение вложения в самого себя

  • корректный расчёт индексов

  • производительность при больших деревьях

Краткий вывод

Вложенный drag-and-drop — это задача управления деревом данных. Если структура обновляется корректно, React сам отрисует правильный UI без ручных манипуляций.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • React

    React

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

#drag

#drop

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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