vue+elementui a页面种a按钮弹窗弹出b的页面, b页面种有b,c按钮,如何在点击a按钮时隐藏b,c按钮
时间: 2024-02-19 15:03:32 浏览: 185
在弹出的b页面中,可以通过`mounted()`生命周期函数或`created()`生命周期函数来监听父组件传来的事件,从而控制b和c按钮的显隐性。
具体方法如下:
1. 在b页面的`<template>`标签中定义b和c按钮,并分别设置不同的`class`或`id`属性,如下所示:
```html
<template>
<div>
<button id="btn-b">按钮B</button>
<button id="btn-c">按钮C</button>
</div>
</template>
```
2. 在b页面的`<script>`标签中,定义一个布尔型变量`showBtn`,并定义一个方法`hideBtns`来控制b和c按钮的显隐性:
```javascript
<script>
export default {
data() {
return {
showBtn: true
}
},
methods: {
hideBtns() {
this.showBtn = false;
}
}
}
</script>
```
3. 在父页面中,通过`this.$refs`来调用子组件的方法。在点击a按钮时,触发一个方法,该方法调用子组件的`hideBtns()`方法,从而隐藏b和c按钮:
```html
<template>
<div>
<button @click="showDialog">弹出对话框</button>
<el-dialog title="对话框" :visible.sync="dialogVisible" width="30%">
<b-page ref="bPage"></b-page>
</el-dialog>
</div>
</template>
<script>
import BPage from './BPage.vue'
export default {
components: {
BPage
},
data() {
return {
dialogVisible: false
}
},
methods: {
showDialog() {
this.dialogVisible = true;
this.$nextTick(() => {
this.$refs.bPage.hideBtns();
});
}
}
}
</script>
```
在以上代码中,我们通过`this.$nextTick()`方法来确保在弹出对话框后再调用子组件的方法。通过以上方法,我们可以在点击a按钮时隐藏b和c按钮。
阅读全文