美文网首页
二次封装el-dialog组件

二次封装el-dialog组件

作者: 很好就这样吧 | 来源:发表于2022-07-13 19:15 被阅读0次

MyDialog.vue

<template>
  <el-dialog
    :visible.sync="mVisible"
    width="438px"
    title="查看详情"
    @open="open"
    @close="close"
  >
    <div >详细内容</div>
    <slot></slot> <!-- 这里还可以插入内容-->
    <div slot="footer">
      <el-button type="primary" @click="close"> 我知道了 </el-button>
    </div>
  </el-dialog>
</template>

<script>
export default {
  name: "MyDialog",
  data() {
    return {
      mVisible: this.visible,
    };
  },
  props: {
    visible: Boolean,
  },
  watch: {
    visible(val) {
      this.mVisible = val;
      if (val) {
        this.getData();
      }
    },
    mVisible(val) {
      this.$emit("update:visible", val);
    },
  },
  methods: {
    open() {
      console.log("open");
      this.$emit("open");
    },
    close() {
      console.log("close");
      this.$emit("close");
    },
    getData() {
     // 获取详情数据
    },
  },
};
</script>

父组件中引入和使用

<template>
    <MyDialog
      :visible="myDialogVisible"
      @close="myDialogVisible = false"
    >
      <div>插入的内容</div>
    </MyDialog>
<template>

<script>
import MyDialog from "./MyDialog.vue";
export default {
  name: "Parent",
  data() {
    return {
      myDialogVisible: false,
    };
  },
  components: {
    MyDialog
  },
};
</script>

或者注册成全局组件

import MyDialog from "./MyDialog.vue";
Vue.component('MyDialog',MyDialog)

全局注册后,父组件中就不用再import了,可以直接使用

<template>
    <MyDialog
      :visible="myDialogVisible"
      @close="myDialogVisible = false"
    >
      <div>插入的内容</div>
    </MyDialog>
<template>

<script>
export default {
  name: "Parent",
  data() {
    return {
      myDialogVisible: false,
    };
  },
};
</script>

相关文章

  • 二次封装el-dialog组件

    MyDialog.vue 父组件中引入和使用 或者注册成全局组件 全局注册后,父组件中就不用再import了,可以...

  • 16.二次封装

    1.封装 element 的el-dialog弹窗组件 https://www.cnblogs.com/keyi6...

  • SimpleLog文档

    simpleLog 基于封装,基本的用法如下: 1. 用法: 在页面写入组件,给其指定相应的...

  • 面向对象实战

    代码预览 tab组件懒加载组件无限轮播组件无限轮播二次封装组件modal组件日历组件

  • 面向对象 实战 -常用JS组件

    轮播组件轮播二次封装预览 曝光加载组件预览 Tab 组件预览 日历组件预览 Modal 组件预览

  • 3面向对象实战

    参考:tab组件229曝光组件187轮播组件172轮播二次封装154 我的: 1: 封装一个轮播组件 http:/...

  • element table 二次封装

    在使用element-ui组件库时,通常需要二次封装组件 1. 封装 table+page 组件 2. 引用tab...

  • element相关

    el-dialog el-dialog作为子组件时,created()、mounted()会在页面加载时就执行,v...

  • element-ui 弹窗组件封装 极简方案

    封装el-dialog为一个组件 我们在使用element-ui的时候,如果一个弹窗中的内容很多,那么我们经常会把...

  • 极简方案-element-ui 弹窗组件封装

    封装el-dialog为一个组件 我们在使用element-ui的时候,如果一个弹窗中的内容很多,那么我们经常会把...

网友评论

      本文标题:二次封装el-dialog组件

      本文链接:https://www.haomeiwen.com/subject/rqytirtx.html