Как заменить один объект на другой в Vuejs? Интерфейс не меняется - PullRequest
0 голосов
/ 22 апреля 2020

Я делаю приложение в Vuejs, и я застрял с проблемой замены одного объекта другим, который приходит из API каждые 10 секунд. У меня есть это на данный момент:

watch: {
 myObj() {
  for (let [key, tuner] of Object.entries(myObj)) {
   ---- some code ----
  }
 }
},
},
created() {
 setInterval(this.callMyApi(), 10000);
},

Я наблюдаю за объектом, а затем использую его в течение l oop, который делает некоторые логики c. Я видел упоминание в документации с использованием this. $ Set (), но это только добавляет свойство к объекту, и я хочу заменить одно на другое. Спасибо за помощь.

1 Ответ

0 голосов
/ 22 апреля 2020

Я бы использовал:

this.myObj = JSON.parse(JSON.stringify(newObj))

, чтобы сделать глубокую копию объекта внутри this.callMyApi().

Чтобы посмотреть изменения этого объекта, выполните следующее: создайте новую переменную bool и используйте ее для компонента, который вы хотите обновить:

<componenttoupdate :reactto=objupdated/>
data: {
    ...
    objupdated: false
    ...
}

и переключайте состояние objupdated bool каждый раз, когда вы выполняете глубокое копирование своей функции, и поэтому компонент обновит.

Это более дешевое решение, чем наблюдение за большими объектами, которые могут обновляться очень часто, как у вас.

...