Почему для значений props типа массив или объект default нужно задавать через функцию, а не готовым значением?

Во Vue фабрика default для объекта или массива создаёт отдельное значение для каждого экземпляра компонента и предотвращает случайное совместное состояние.

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

Что ответить на собеседовании

Во Vue фабрика default для объекта или массива создаёт отдельное значение для каждого экземпляра компонента и предотвращает случайное совместное состояние.

Подробный разбор

Ответ с пояснениями

Во Vue фабрика default для объекта или массива создаёт отдельное значение для каждого экземпляра компонента и предотвращает случайное совместное состояние.

Например, default: () => [] возвращает новый массив, а default: () => ({ enabled: true }) — новый объект. Это не правило для любого значения в любом framework: речь о mutable default props в соответствующем API Vue. Сами входные props не следует мутировать без согласованного контракта.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее