<div>
<button @click="$refs.cart.open()">open</button>
<drawer></drawer>
</div>
ref=购物车在里面<drawer>
,我可以用那个按钮打电话吗?怎么办?
---已编辑---
---edited solve with vuex---
根模板
toggle() {
this.$store.dispatch('toggle', {
toggle: 'close'
}).then(() => {
this.$store.dispatch('toggle', {
toggle: 'open'
})
})
}
抽屉内
computed: {
toggle() {
return this.$store.state.toggle
}
},
watch: {
toggle(val) {
if (val == 'open') this.$refs.cart.open()
}
}
最佳答案
一个简单的解决方案(不是最好的)是仅使用 Vue 事件总线在此处的组件之间进行通信。 Quasar 有一个全局事件总线 ( http://quasar-framework.org/api/js-events.html )。
最好的解决方案是使用 Vuex,但当然,如果您只是为此需要它,则不需要。
Vue 引用很棘手,并且并不总是可以使用。解释很长,并且与 Vue 的渲染方式有关。
关于vuejs2 - Vuejs 调用 $refs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41455758/