Я создаю компонент в VueJS для приложения, которое я делаю, и у него есть некоторые наблюдатели, чтобы применять логику к другим частям компонента при изменении моей переменной.Как только компонент инициализирован, он все еще должен быть установлен некоторыми данными с сервера, поступающими после нескольких событий, выполненных пользователем через Axios.Эти данные попадают в компонент из события, генерируемого основным приложением.Дело в том, что этот var обычно изменяется (не всегда), но я не хочу, чтобы эта логика применялась в первый раз, поэтому я решил установить флаг и проверить его в наблюдателе, чтобы он вернулся, но этого не происходит:как только я верну этому флагу значение true (он проверяет! this.flag), наблюдатель все равно сработает.Вот код:
data(){
return {
isSet: false,
myVar: {
first: 0,
second: 0
}
}
},
watch: {
'myVar.first': {
handler: function(newVal, oldVal){
if(!this.isSet || other.condition){return}
console.log('first triggered');
},
immediate: false
},
'myVar.second': {
handler: function(newVal, oldVal){
if(!this.isSet || other.condition){return}
console.log('second triggered');
},
immediate: false
}
},
methods: {
setBus(){ // gets called on created(){}
let self = this;
Bus.$on('my-event', function(c){
self.doFirstSet(c);
});
},
doFirstSet(c){
// do other setting
if(c.someCondition){
this.doExtraConfig(c);
}
this.isSet = true; // at this point is when the watchers get triggered
},
doExtraConfig(c){
// do more stuff
if('first' in c){
this.myVar.first = c.first;
}else if('second' in c){
this.myVar.second = c.second;
}
console.log("watchers don't get triggered yet");
}
}
Есть идеи, как остановить их срабатывание при смене флага?