const app = createApp({
data() {
return {
some_id: 0
}
}
})
我在一個欄位上有一個自動完成功能。選擇標簽后,我想將 id 傳遞給 Vue 應用程式。
onSelectItem: ({label, value}) => {
app.some_id = value;
}
這適用于舊 v2 版本的 Vue.js。現在,我什至不能從其他 JavaScript 函式呼叫 Vue 應用程式的方法。什么是最好的解決方案?
uj5u.com熱心網友回復:
在某些情況下,您可能需要訪問和變異,更改實體的data.
這在 Vue JS 2 中更容易,但 Vue JS 3 變得更加封裝。然而,這并不意味著從外部改變狀態是不可能的。你可以在這里閱讀
假設您使用 Vue 和構建步驟(涵蓋了大多數情況),您將擁有如下內容:
const app = createApp({
data() {
return {}
},
})
.mount('#app');
現在,如果您前往瀏覽器控制臺并鍵入app,它將為 null,因為它僅限于編譯.js檔案的范圍。
但是如果你附加app到一個全域物件,document例如:
document.app = createApp({
data() {
return {}
},
})
.mount('#app');
現在,如果您app在控制臺中輸入,它將不再是null,而是 Vue 實體。從那里,您可以訪問實體data以及通過app.$data屬性對其進行變異。
現在如果實體有components并且你想改變他們的$data?在以前的版本中,可以通過$children屬性訪問子級。但是現在為了訪問孩子,您必須給他們每個人一個ref,然后通過他們的參考名稱訪問。例如:
app.$refs.alertComponent.$data.message = "New message!"
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/486818.html
