vue el-dialog封装成子组件(组件化)

前言

  • 实际开发过程中我们经常听见组件化开发,但在实际开发过程中(没有人审查时)怎么方便来

  • 我们有时是因为时间不够,所以把所有代码写在一个页面。当业务逻辑复杂时可能会有1k多行

  • 虽然不能要求自己写出高效复用性高的组件,把dialog弹出框写成一个子组件抽走还是可以的

  • 当你把表单抽在就会发现代码少了很多

代码实现

1.在文件下创建components文件夹创建DialogForm.vue文件

html 复制代码
<template>
  <div>
    <el-dialog
      title="表单"
      :visible="dialogVisible"
      width="45%"
      @close="handleClose"
    >
      <span>子组件弹出框</span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">关 闭</el-button>
        <el-button type="primary" @click="dialogVisible = false"
          >发起合同审批</el-button
        >
      </span>
    </el-dialog>
  </div>
</template>
​
<script>
export default {
  name: 'DialogForm',
  props: {
    DialogFlag: {
      default: false
    }
  },
  data () {
    return {
      // 开关
      dialogVisible: false,
    }
  },
  watch: {
    DialogFlag () {
      this.dialogVisible = this.DialogFlag
    }
  },
  created () {
    console.log('审批页面执行')
  },
  methods: {
    // 表单关闭事件-通知父组件关闭(.syanc)
    // 不通知父组件可能会报错,导致只能打开一次
    handleClose () {
      this.$emit('update:DialogFlag', false)
    },
  }
}
</script>
复制代码

2.在index.vue页面中使用

javascript 复制代码
// 引入组件
import DialogForm from './components/DialogForm.vue'
​
//注册组件
 components: {
    DialogForm
  },
  
//data
 DialogFlag: false
​
// html
<DialogForm :DialogFlag.sync="DialogFlag" />
​
// 使用组件
  <el-button
              type="primary"
              icon="el-icon-circle-plus-outline"
              @click="examinadd"
              >打开表单</el-button
            >
            
 examinadd () {
      this.DialogFlag = true
    },

总结:

经过这一趟流程下来相信你也对 vue el-dialog封装成子组件(组件化)有了初步的深刻印象,但在实际开发中我 们遇到的情况肯定是不一样的,所以我们要理解它的原理,万变不离其宗。加油,打工人!

什么不足的地方请大家指出谢谢 -- 風过无痕

相关推荐
xcLeigh5 分钟前
HTML5好看的水果蔬菜在线商城网站源码系列模板5
java·前端·源码·html5
进取星辰11 分钟前
6、事件处理法典:魔杖交互艺术——React 19 交互实现
前端·react.js·交互
阿芯爱编程18 分钟前
前端最新面试题
前端·面试
谁点的猪脚饭20 分钟前
vue2 element-ui 中 el-radio 单选框点击事件失效问题
vue.js·elementui·vue2
天天扭码24 分钟前
一分钟吃透一道面试算法题——字母异位词分组(最优解)
前端·javascript·算法
天天扭码35 分钟前
JavaScript 中字符串转字符数组的两种优雅方式
前端·javascript·代码规范
何遇er38 分钟前
在 AI 编程的热潮下对低代码的思考
前端·低代码·ai编程
何遇er41 分钟前
一句 Prompt 自动生成表单:我在低代码平台里是怎么接入生成式 AI 的
前端·低代码·ai编程
_一条咸鱼_42 分钟前
Vue 指令模块深度剖析:从基础应用到源码级解析(十二)
前端·javascript·面试
薯条不要番茄酱1 小时前
【JavaEE初阶】多线程重点知识以及常考的面试题-多线程进阶(一)
java·前端·java-ee