Когда Vue создает экземпляр компонента, он просматривает каждое свойство в вашем data
и создает для него пару получатель / установщик в дополнение к присоединению наблюдателя, если свойство является объектом / массивом.Это делается для того, чтобы компонент реагировал на мутации состояния.Это приводит к небольшому увеличению затрат на инициализацию и бухгалтерского учета, но это весьма незначительно для всех намерений и целей, поэтому я бы не стал сильно беспокоиться об этом.
Есть замечательный доклад под названием Демистификация производительности платформы Frontend Эвана Ю (Evan You), создателя Vue, в которой он сравнивает различные аспекты производительности сред интерфейса и описывает, как реализация Vue отличается от других сред.Он обрисовывает компромиссы, которые он должен был сделать, чтобы добиться реактивности, и приходит к выводу, что, если вы не создаете ОГРОМНОЕ приложение, вы обычно не должны беспокоиться о снижении производительности из-за того, как работает Vue.
Тем не менее, если вы создаете такое огромное приложение и сталкиваетесь с проблемами производительности, вы можете переместить любое состояние, которое не реагирует на хук created
, и Vue не отследит его ..
created() {
this.group = {
children: []
}
}
Для объектов, которые не будут изменены, вы также можете использовать Object.freeze () , и Vue также не будет их отслеживать ..
const group = {children: []}
Object.freeze(group)
// Then in your data
data() {
return {
group,
}
}