VUE|利用父子组件制作弹出框

博客主页:JavaProfessional
一个专注于Java的博主,致力于使用通俗易懂的语句讲解内容,期待您的关注!

点击显示弹框

显示弹框需要父组件有一个控制显隐的变量,并且通过传递给子组件的控制显隐的变量。

父组件

添加一个按钮

<div class="handle-box">
  <el-button type="primary" @click="openChild">新增</el-button>
  <book-type-table-add :isVisible="addVisible"></book-type-table-add>
</div>

添加控制显隐的变量以及点击方法:

data() {
    return {
      bookTypeDialogVisible: false, // 添加控制显隐的变量
},
methods: {
    popUp(){
      this.bookTyoeDialogVisible = true; // 点击popUp方法,将显隐变量设置为true
    }
},

在父组件中添加子组件

import BookTypeTableAdd from "./BookTypeTableAdd.vue";

export default {
  components: {BookTypeTableAdd},
  data() {
      return {
        bookTypeDialogVisible: false, // 添加控制显隐的变量
  },
  methods: {
      popUp(){
        this.bookTyoeDialogVisible = true; // 点击popUp方法,将显隐变量设置为true
      }
  },
}
<div class="handle-box">
  <el-button type="primary" @click="openChild">新增</el-button>
  <book-type-table-add :isVisible="addVisible"></book-type-table-add>
</div>

子组件

监听值的变化,并赋给本地变量

<template>
  <el-dialog :title="添加" v-model="visible">
  </el-dialog>
</template>

<script>

export default {
  name: "BookTypeTableAdd",
  props: {
    isVisible: { //父组件传值
      type: Boolean,
      default: false
    }
  },
  data(){
    return{
      visible: false
    }
  },
  watch: {
    isVisible(oldVal, newVal) { // 监听父组件传值
      console.log("watch isVisible")
      this.visible = this.isVisible
    }
  }

};
</script>

<style scoped>

</style>

点击关闭弹框

当子组件控制显隐的变量被置为false,我们还需要向父组件传值,修改父组件的值。

子组件

<template>
  <el-dialog :title="添加" v-model="visible" @close="handleClose">
  </el-dialog>
</template>
methods: {
    handleClose(){
      console.log("close");
      this.visible = false;
      // 子组件调用父组件的方法,并传递参数
      this.$emit("changeVisible", "false");
    }
  },

父组件

<book-type-table-add :isVisible="addVisible" @changeVisible="addVisibleMethod"></book-type-table-add>

注意我们添加了一个changeVisible方法

addVisibleMethod(data) {
      if (data==='false') {
        this.addVisible = false;
      } else{
        this.addVisible = true;
      }
    }

addVisibleMethod就是子组件调用的方法。

效果

在这里插入图片描述在这里插入图片描述


好文推荐

  1. 通俗易懂JVM
  2. 为什么Spring中的IOC(控制反转)能够降低耦合性(解耦)?
  3. 效率翻倍,这些idea的逆天功能你知道吗?
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tinpo_123

感谢给小张填杯java~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值