我是前端开发的新手,并开始在VueJS上使用Quasar .
问题是如何从另一个组件打开抽屉?现在我有解决方案来选择一个DOM元素并在其上调用open(),但我认为它不是最好的 .
代码是 this.$parent.$children[2].$refs.leftDrawer
组件Drawer.Vue内容是一个带有ref的抽屉标签:
<q-drawer ref="leftDrawer">
....
</q-drawer>
组件headerbox.vue内容是:
<template>
...
<button class="hide-on-drawer-visible" @click="leftDrawer.open()">
...
</template>
<script>
...
computed: {
leftDrawer () {
return (this.$parent.$children[2].$refs.leftDrawer)
}
...
</script>
MainApp Vue内容:
<template>
<q-layout>
<headerbox slot="header"></headerbox>
<drawer></drawer>
...
</q-layout>
</template>
<script>
...
import headerbox from './header.vue'
import drawer from './drawer.vue'
...
components: {
headerbox,
drawer,
}
...
</script>
1 回答
您最好的选择是在消息泵上使用事件 .
在你的main.js里面添加一行
然后在你的组件中有抽屉:
以及需要打开抽屉的任何组件
实际上你可以从两个电话中删除
window.
,但这取决于你的个人喜好 .