Встречается на собеседованиях • сегодня

Будет ли Vue перерендеривать каждое переназначение объекта

Vue не будет перерендеривать компонент при каждом изменении объекта, если изменения происходят внутри его свойств. Vue отслеживает только изменения ссылки на сам объект.

Для реактивности нужно:

  1. Инициализировать объект в data()
  2. Использовать Vue.set() или this.$set() для добавления новых реактивных свойств
  3. Для глубоких изменений лучше создавать новый объект

Пример:

js
data() {
  return {
    user: { name: 'John' }
  }
},
methods: {
  updateUser() {
    // Не вызовет перерендер:
    this.user.age = 30
    
    // Вызовет перерендер:
    this.$set(this.user, 'age', 30)
    
    // Или так:
    this.user = {...this.user, age: 30}
  }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы