现有父组件modeltest.vue和子组件modalcomp.vue,父组件有一个按钮,点击后显示子组件,子组件有一个按钮点击后子组件消失,使用vue3组合式api完成功能
时间: 2023-11-03 20:00:27 浏览: 155
详解vue中在父组件点击按钮触发子组件的事件
5星 · 资源好评率100%
可以按照以下步骤实现:
1. 在 `modalcomp.vue` 中定义组件模板和逻辑,包括显示/隐藏的状态和方法:
```vue
<template>
<div v-show="show">
<h2>Modal Component</h2>
<button @click="hide">Close</button>
</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const show = ref(false);
const hide = () => {
show.value = false;
};
return {
show,
hide,
};
},
};
</script>
```
2. 在 `modeltest.vue` 中引入子组件,并在模板中使用:
```vue
<template>
<div>
<h1>Model Test</h1>
<button @click="showModal">Show Modal</button>
<modal-comp ref="modalComp"></modal-comp>
</div>
</template>
<script>
import { ref } from 'vue';
import ModalComp from './ModalComp.vue';
export default {
components: {
ModalComp,
},
setup() {
const modalComp = ref(null);
const showModal = () => {
modalComp.value.show = true;
};
return {
modalComp,
showModal,
};
},
};
</script>
```
注意,在 `modeltest.vue` 中需要使用 `ref` 引用子组件实例,并通过该实例调用子组件的方法来显示/隐藏子组件。
3. 现在,当点击父组件的按钮时,子组件会显示;当点击子组件的按钮时,子组件会隐藏。
希望能帮到你!
阅读全文