Любимый интервьюер спросил vue (on)

Vue.js
Любимый интервьюер спросил vue (on)

предисловие

Всякий раз, когда начинается процесс технического собеседования, интервьюер всегда будет заинтересован в том, чтобы спросить, вы будете vue? Видимое положение в стране не следует недооценивать, в первую очередь, когда его спрашиваютМожете ли вы рассказать мне, как vue реализует двустороннюю привязку данных?

Чтобы избежать повторения неловких сцен, давайте вместе изучим принцип отзывчивости vue!

Если ваши друзья уже знакомы с этими двумя проблемами, вы можете просмотреть план следующего друга.Библиотека резюме интервью

Не лезь не в свое дело, гуляй с Чэнь Чжанем. Доберитесь до сути.

1.Object.defineProperty()

Цитата из официального сайта vue.

Когда вы передаете обычный объект JavaScript экземпляру Vue в качестве параметра данных, Vue перебирает все свойства объекта и использует Object.defineProperty для преобразования всех этих свойств в геттеры/сеттеры.

Object.defineProperty играет решающую роль в этом проекте.

Так что для тех, кто пока не знаком с этим методом, можно нажатьMDN

2. Перехват данных

Что такое захват данных?

Все свойства определяются Object.defineProperty, и эти свойства могут иметь методы получения/установки.

Используйте один из официальных сайтов vue 🌰. когда я набираю в консолиapp.$dataЯ могу получить доступ к объекту данных в экземпляре приложения.

Мы можем видеть сообщение атрибута под объектом данных, который имеет свой собственный get/set.

Как добиться захвата данных?

Теперь свойства данных нашего экземпляра vue имеют set()/get(). Но мы часто сталкиваемся в vue Например

this.$data.message = {repoter:{person:'zhx'}}

Поскольку мы хотим добиться отзывчивости, мы должны добавить к нему get()/set(), даже если мы изменим его позже.

Нам просто нужно снова вызвать Observe() в методе set, как показано в следующем коде.

брокер данных

在vue中我们经常取值都是通过this.message取值而不是this.$data.message,所以这一步我们要做$data的代理

На этот раз мы в основном делились

  • 1.Object.defineProperty
  • 2. Перехват данных
  • 3. Брокер данных

Следующий основной обмен 1. Обработка шаблона компиляции 2. Режим публикации и подписки

Если интервьюер спрашивает этот вопрос снова, я обязательно буду уверен.

Я надеюсь, что эта статья может помочь вам. Я желаю тебе счастливой жизни.