Ревью назначения роли пользователю Vue 2

Во Vue 2 добавление ранее не объявленного user.role таким присваиванием не становится реактивным. Объявите поле заранее или используйте $set.

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

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

Во Vue 2 добавление ранее не объявленного user.role таким присваиванием не становится реактивным. Объявите поле заранее или используйте $set.

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

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

Условие

Ревью назначения роли пользователю Vue 2

export default {
  data() {
    return { user: { name: 'Ivan' } };
  },

  methods: {
    setRole(role) {
      this.user.role = role;
    }
  }
}

Ответ

Во Vue 2 добавление ранее не объявленного user.role таким присваиванием не становится реактивным. Объявите поле заранее или используйте $set.

Исправление метода: this.$set(this.user, 'role', role). Альтернатива — начальное user: {name:'Ivan', role:null} либо замена объекта на новый с role. Само изменение клиентского поля не выдаёт настоящие права: назначение роли требует серверной проверки.

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

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

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

Подробнее