我有一個子組件ZimModel.vue,我在其中創建了一個方法drawGrid()。我需要在父組件(mainPage.vue)中呼叫此方法。這個想法是一旦用戶在輸入中完成輸入值(即:網格的寬度 - 我添加了@input事件v-model="inputWidth"),就呼叫此方法。這就是為什么我也使用setTimeout5 秒延遲。但是,我不知道如何將此方法“發送”到父組件。我試過了,emit但我認為這沒有任何意義。我在我的應用程式中使用 Vuex 商店,但這個特定的方法與其他資料和方法嚴格相關,ZimModel.vue所以我認為將它移到 Vuex 是沒有意義的。在這種情況下,我應該遵循任何模式/良好做法嗎?
這是一個可重現的示例:https ://codesandbox.io/s/vue-2-playground-vuex-drag-and-snap-to-tiles-un6984?file=/src/components/mainPage.vue 。作為一個例子,我添加了myGreeting()方法 (in mainPage.vue) 來展示我希望我的程式如何作業。我需要用目標方法替換這個示例drawGrid()方法。
uj5u.com熱心網友回復:
使用 $ref 將解決您的問題:
<ZimModel ref="zimModel" />
在你的方法里面:
triggerDrawing() {
clearTimeout(this.timer);
// this.timer = setTimeout(this.myGreeting, 5000);
this.$refs.zimModel.drawGrid();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/491309.html
標籤:javascript Vue.js
