用vue3+TS实现:一个父组件有一个按钮为编辑,子组件先有两个默认隐藏的按钮:保存和取消。当点击父组件编辑按钮时,子组件的两个按钮显示。
时间: 2023-11-30 12:09:01 浏览: 68
好的,可以参考下面的代码实现:
```vue
<template>
<div>
<button @click="edit">编辑</button>
<child-component ref="child"></child-component>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue'
import ChildComponent from './ChildComponent.vue'
export default defineComponent({
components: {
ChildComponent
},
methods: {
edit() {
// 获取子组件实例
const child = this.$refs.child as ChildComponent
// 显示保存和取消按钮
child.showButtons()
}
}
})
</script>
```
子组件的代码如下所示:
```vue
<template>
<div>
<div v-show="showSaveButton">
<button>保存</button>
<button>取消</button>
</div>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue'
export default defineComponent({
data() {
return {
showSaveButton: false
}
},
methods: {
showButtons() {
// 显示保存和取消按钮
this.showSaveButton = true
}
}
})
</script>
```
需要注意的是,子组件需要暴露一个方法 `showButtons()`,用于在父组件点击编辑按钮时显示保存和取消按钮。在父组件中,可以通过 `$refs` 获取子组件实例,然后调用子组件暴露的方法即可。
阅读全文