子组件

1.visible.sync语法糖简单介绍
**

<child-dialog :visible.sync="visible"></child-dialog>
等同于
<child-dialog :visible="visible" @update:visible="val => visible = val"></child-dialog>

**

2.在VUE中,prop的传递是父传给子,属于单向传输,而关闭事件在子组件里,一般情况下需要通过this.$emit来实现子组件向父组件通信
3.sync指令其实是调用了父组件里写的update,从而实现visible的父子同步,父组件初始化visible,子组件调用关闭事件,触发父组件的update
4.双向绑定v-modal触发的是父组件input事件,.sync触发的是父组件的update事件.

<template><!--  --><el-dialog :visible.sync="visible" title="新增" :before-close="newlybuildcancel"><div slot="footer" class="dialog-footer"><el-button @click="newlybuildcancel">取 消</el-button><el-button type="primary" @click="newlybuildsure">确 定</el-button></div></el-dialog>
</template><script>
export default {name: 'DialogBimServiceTeam',components: {},props: {visible: {type: Boolean,default: false,},// 表单数据formdata: {type: Object,default: () => [],},},// 表单验证规则data() {return {}},computed: {},watch: {},created() {},methods: {newlybuildcancel() {this.$emit('update:visible', false)this.$refs['ruleForm'].resetFields()},newlybuildsure() {this.$refs['ruleForm'].validate((valid) => {if (valid) {this.$emit('update:visible', false)this.$refs['ruleForm'].resetFields()}})},},
}
</script><style lang="scss"></style>

父组件

<template><div class="bimServiceTeam"><div class="bimServiceTeamButton"><!-- <el-button class="newlybuild" @click="dialogTableVisible = true"> --><el-button class="newlybuild" @click="addOrderVisible = true"><span class="icon iconfont"></span><span class="newlybuildtitle">新建</span></el-button><el-button class="Delete"><span class="icon iconfont"></span><span class="Deletetitle">删除</span></el-button></div><div class="bimServiceTeamTable"><TableBimServiceTeam :tableData="tableData"></TableBimServiceTeam></div><!-- <div class="Dialog"><DialogBimServiceTeam ref="addOrder" v-if="dialogTableVisible" :visible.sync="dialogTableVisible" :formdata="formdata"></DialogBimServiceTeam></div> --><div class="main-wrap"><!-- <el-button type="primary" @click="toAdd">添加</el-button> --><DialogBimServiceTeam :visible.sync="addOrderVisible" :formdata="formdata"></DialogBimServiceTeam></div></div>
</template><script>
// import { mapState } from 'vuex'
// 表格组件
import TableBimServiceTeam from './components/TableBimServiceTeam'
import { mapState } from 'vuex'
export default {name: 'BimServiceTeam',components: {TableBimServiceTeam,},data() {return {gridData: [{date: '2016-05-02',name: '王小虎',address: '上海市普陀区金沙江路 1518 弄',},],addOrderVisible: false,formdata: {name: '',region: '',},tableData: [{date: '2016-05-02',name: '王小虎',address: '上海市普陀区金沙江路 1518 弄',},],currentOrgthis: '',}},computed: {...mapState(['currentOrg', 'userInfos', 'token', 'tenantId']),},watch: {},created() {this.initRequestPage()},methods: {initRequestPage() {this.requestTableData()},},
}
</script><style lang="scss"></style>

封装Dialog子组件 解决 visible.sync问题相关推荐

  1. Vue组件封装 ——dialog对话框组件

     一.基础准备工作 1.创建一个基础的vue项目包 2.创建components文件夹,用于存放组件,新建dialog.vue组件,可以自己取个名字 <script> export def ...

  2. vue 封装dialog_element-dialog封装成子组件

    移除 {{Edit}} import UserEditfrom "./UserEdit-dialog.vue"; import updatefrom './Update.vue'e ...

  3. vue父组件调用子组件方法

    vue父组件调用子组件方法 比如,父组件有一个弹窗组件,在子组件里定义自己的显示隐藏效果,父组件调用. 通过ref调用子组件的方法 父组件代码 <template><div>/ ...

  4. 【Vue】解决el-dialog作为子组件封装点击显示与隐藏问题

    element-ui中的el-dialog组件经常用作嵌套表单来使用,但是当我们把它封装成一个子组件时会发现点击隐藏与显示会出现问题.以下贴出关键代码,希望对大家有帮助,共同学习. 解决代码: el- ...

  5. vue中el-dialog弹窗关闭,子组件控制父组件

    1.父组件页面中的点击事件控制子组件的弹窗出现 2.子组件页面有个叉叉,点了之后关闭当前页面 <div class="databtn" @click="record ...

  6. 子组件调用子组件的方法

    在App.vue父组件中使用子组件HeaderBar 和 Dialog_Login 一.头部组件HeaderBar <template><div id="HeaderBar ...

  7. :visible.sync弹框显示隐藏

    1.:visible指的是属性绑定,表示弹框的显示隐藏,当:visible的值为ture的时候,弹框显示,当为false的时候,弹框隐藏,后面的.sync是什么意思呢,指的就是同步动态双向的来表示vi ...

  8. vue封装自己的组件库 02.封装dialog组件

    link: https://blog.csdn.net/weixiaowei_2016/article/details/104702793 四.封装一个element-ui风格的dialog组件 前置 ...

  9. vue 封装dialog_element-ui 封装dialog组件

    封装组件: title="title" :visible.sync="visible" @close="$emit('update:show', fa ...

最新文章

  1. Python wordcloud库使用说明
  2. MongoDB 计划缓存的影响
  3. R语言使用线性回归模型来预测(predict)单个样本的目标值(响应值、response)实战
  4. 模拟inode号耗尽、EXT和XFS类型文件恢复(详细图解)
  5. [转贴]非技术:在广州天河北被抢全记录(入面D广州话真系厉害,不懂粤语者别看,会吐血)...
  6. 【AI视野·今日NLP 自然语言处理论文速览 第二十一期】Fri, 24 Sep 2021
  7. RAID5中的“左、右循环”与“同步、异步”(2)
  8. hdu 1890 Robotic SortI(splay区间旋转操作)
  9. 【5G核心网】 3GPP TS 系列解读
  10. python工程师简历项目经验怎么写_班长项目经验简历范文
  11. 正运动技术CAD导图软件配合控制器的使用方法
  12. Prometheus普罗米修斯监控的使用_v1.0.5
  13. GridView使用大全
  14. JavaScript教程-18-JavaScript中的内置对象Global
  15. 如何解决:使用Xbrowser软件连接服务器显示灰屏
  16. 如何恢复计算机我的电脑工具栏,电脑任务栏怎么还原 电脑任务栏的还原方法...
  17. 宝德服务器——企业需要真正的按需定制产品
  18. 利用grub引导多系统debian8.0+win7+ubuntu16.04
  19. java实现退出重启后保存_JAVA实现关机、重启等
  20. 支付宝:批量付款到支付宝账户有密接口

热门文章

  1. 美丽的区间(尺取法)
  2. Educational Codeforces Round 41 (Rated for Div. 2) ABCDEF
  3. 用inkscape绘制晚安LOGO
  4. 把孩子培养成为合格Geek的七个方法
  5. Linux c使用gumbo库解析页面表单信息(三)
  6. android 方大动画,动画 -- View动画 -- 缩放动画
  7. kafka学习笔记——入门基本原理
  8. 使用ADB解锁配置Android设备的新姿势
  9. 2022年 change detection遥感图像变化检测 论文附代码
  10. Idea 设置编码UTF-8 Idea中 .properties 配置文件中文乱码