vue自定义封装弹框组件

1.新建一个新组件命名命名为alertBox.vue

     一.dom结构

     <!--删除弹框-->

    <div class="paymentdetail_compontents" v-if="isShowDialogs">

      <div class="paymentdetail_div_box">

        <div class="paymentdetail_div1">

          <span class="paymentdetail_div1_warn">提示</span>

          <div class="paymentdetail_person_box">{{Message}}</div>

        </div>

        <div class="paymentdetail_div2">

          <span class="paymentdetail_div2_span" @click="isShowRefruct">否</span>

          <span class="paymentdetail_div2_span1" @click="isShowAgree">是</span>

        </div>

      </div>

    </div>

二.script

<script>

export default {

  props: ["isshowAlert", "Message"],

  data() {

    return {

      isShowDialogs: true

    };

  },

  methods: {

    isShowRefruct() {

      this.isShowDialogs = false;

      this.$emit("replaceChecked", "replace");

    },

    isShowAgree() {

      this.isShowDialogs = false;

      this.$emit("sureChecked", this.Message);

    }

  },

  watch: {

    isshowAlert() {

      this.isShowDialogs = this.isshowAlert;

    }

  }

};

</script>

三样式

.paymentdetail_compontents {

  position: fixed;

  left: 0;

  top: 0;

  right: 0;

  bottom: 0;

  z-index: 33333;

  background-color: rgba(0, 0, 0, 0.6);

  /* display: flex; */

  .paymentdetail_div_box {

    width: 300px;

    background-color: white;

    border-radius: 5px;

    position: absolute;

    left: 50%;

    top: 50%;

    transform: translate(-50%, -50%);

    .paymentdetail_div1 {

      height: 90px;

      text-align: center;

      margin-top: 20px;

      .paymentdetail_person_box {

        height: 50px;

        margin-top: 20px;

        color: #685c5c;

      }

      .paymentdetail_div1_warn {

        color: #000;

        font-family: bolder;

      }

    }

    .paymentdetail_div2 {

      border-top: 1px solid #eee;

      /* display: flex; */

      span {

        /* flex: 1; */

        height: 39px;

        line-height: 39px;

        color: #5077aa;

        text-align: center;

        width: 50%;

      }

      .paymentdetail_div2_span {

        border-right: 1px solid #eee;

        color: #685c5c;

        float: left;

        box-sizing: border-box;

      }

      .paymentdetail_div2_span1 {

        float: right;

      }

    }

  }

}

4.使用props接收从父组件中接收的值

  props: ["isshowAlert", "Message"],

5.在watch中监听弹框是否出现

isshowAlert() {

      this.isShowDialogs = this.isshowAlert;

    }

6.父组件中引入组件

1.import alertbox from "./alertBox";

2. components: {

    alertbox

  },

3.dom结构

<alertbox :isshowAlert="showAlert" :Message="alertMessage" @replaceChecked="replace_checked" @sureChecked="sure_checked"></alertbox>

4.

data() {

    return {

      showAlert: "",

      alertMessage: "你好"

    };

  }

5.

methods: {

    replace_checked() {

      console.log(2222222);

    },

    sure_checked() {

      console.log(1111111);

    }

  }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在学习weex的过程中看到了常用标签相关的内容,为了自己以后能够快速查阅特整理出此文档。 a 简介组件定义了指向某...
    TyroneTang阅读 10,210评论 1 3
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,514评论 1 45
  • 专有名词 第五章中的关键词的解释取自百度百科和和问题索引源于网络素养一书。 1.社会网络分析:也称(SNA),IB...
    __晨曦阅读 2,701评论 0 0
  • 《逍遥游》是《庄子》的开篇,鲲鹏寓言故事是《逍遥游》的开篇,可以说“大鹏展翅”的画面就是《庄子》的开篇。 ...
    肖阳晓冬阳阳阅读 4,079评论 2 1
  • 123456
    睿25阅读 1,184评论 0 0

友情链接更多精彩内容