1
設置:有沒有什麼辦法讓多個Vues有一個計算的偵聽器在相同的值上工作?
我有多個Vue的組件,並且每個組件都有在我的web應用程序不同的對話框多個實例。
對於每種類型的組件我都有一個全局狀態(handrailOptions
在下面的例子中),以便每種類型的組件在對話框中保持同步。
我想這樣做,當組件進行超出第1步,我隱藏在該對話框中的其他組件。
我用計算器/手錶組合很好地實現了這個。
但是,我的問題是,如果我嘗試通過超過1個Vue實例進行計算偵聽,它會劫持其他偵聽器。
問題
下面就是我的工作,當應用程序啓動時的簡化版本,控制檯登錄「計算機1」 &「計算2」。但當我改變handrailOptions.step
時,只有第二次火災。 ('計算2'&'看了2')
有沒有辦法讓多個Vues有一個計算出來的監聽器在同一個值上工作?
handrailOptions = {
step: 1
};
Vue.component('handrail-options', {
template: '#module-handrail-options',
data: function() {
return handrailOptions;
},
});
var checkoutDialog = new Vue({
el: '#dialog-checkout',
computed: {
newHandrailStep() {
console.log('computed 1');
return handrailOptions.step;
}
},
watch: {
newHandrailStep(test) {
console.log('watched 1');
}
}
});
new Vue({
el: '#dialog-estimate-questions',
computed: {
newHandrailStep() {
console.log('computed 2');
return handrailOptions.step;
}
},
watch: {
newHandrailStep(test) {
console.log('watched 2');
}
}
});
是什麼'handrailOptions'?什麼是'newHandrailStep'? –
假設'handrailOptions'是一個全局變量,並且它的數據綁定在data.handrailOptions.step而不是'data.handrailOptions'我明白你的問題。因爲vue無法綁定到對象引用,所以它綁定到該值,因此無法更新其他實例。嘗試綁定對象,而不是數據段中的對象屬性=>'data:{handrailOptions:handrailOptions}' – Reiner
@RoyJ'handrailOptions'是我提到的全局狀態,我編輯了我的答案,將它添加到代碼中。 'newHandrailStep'是爲'handrailOptions.step'計算的變量,以便我可以在vue實例中觀看它。 –