【发布时间】:2020-07-25 02:49:42
【问题描述】:
我希望用户在单击按钮时打开和关闭模式。为了组织我的代码,我使用单个文件组件。
在我的单个文件按钮组件HamburgerButton.vue 中,我有:
<template>
<button @click.prevent="onClick"
>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
<path v-if="isOpen" d="M10"/>
<path v-if="!isOpen" d="M0"/>
</svg>
</button>
</template>
<script>
export default {
data() {
return {
isOpen: false
}
},
methods: {
onClick (evt) {
this.isOpen = !this.isOpen
this.$emit('click', evt)
component
}
}
}
</script>
我模板中的注册按钮:
<hamburger-button @click="onClicked"></hamburger-button>
我的模态html:
<div :class="isOpen ? 'block' : 'hidden'" class="static">
<!--Modal-->
</div>
在我的 app.js 和我的 Vue 实例中,我有:
new Vue({
el: '#menu',
data: {
isOpen: false,
},
methods: {
onClicked() {
this.isOpen = true;
}
},
components: {
HamburgerButton,
}
})
当我再次按下按钮时,除了模式没有关闭之外,一切正常吗?
我在我的模板中尝试了以下内容:
<hamburger-button @click="onClicked = !onClicked"></hamburger-button>
但这不起作用?
【问题讨论】:
标签: vuejs2 click vue-component