当前位置: 首页 > news >正文

this.$emit(‘update:isVisible‘, false)作用

这个写是不是很新颖,传父组件传值!这是什么鬼。。。

假设你有以下逻辑业务。在A页面弹出一个组件B,A组件里面使用B组件,是否展示B组件你使用的是baselineShow变量控制!

<BaselineData :isVisible.sync="baselineShow" @addNewCrfAction="addNewCrfAction"/>

而B组件里面是你封装的el-dialog!如下,B组件内的代码为:

<template><el-dialog title="选择CRF" :visible.sync="isVisible" width="850px"append-to-body:close-on-click-modal="closeOnClickModal":show-close="showClose":before-close="handleClose"><div class="mt-20 flex wrap main-box" v-loading="apiLoading">
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</div><span slot="footer" class="dialog-footer"><el-link type="primary" class="mr-15" @click="checkedClear">清空</el-link><el-button type="primary" @click="submit">确定</el-button><el-button type="plain" @click="cancel">取消</el-button></span></el-dialog>
</template><script>
import crudCrfs from '@/api/crf/template'
export default {props: {isVisible: {type: Boolean,default:false},closeOnClickModal: {type: Boolean,default:true},showClose: {type: Boolean,default:true},showAddOption: {type: Boolean,default:true},},data() {return {list: [],apiLoading:true}},created(){crudCrfs.getAllCrfs().then(res=>{res.forEach(e=>{e.selected = falsee.subTitle = '包含' + e.groupCount + '个题组,' + e.componentCount + '字段'this.list.addObject(e)})this.apiLoading = false})},methods: {handleClose() {this.$emit('update:isVisible', false);},checkedItems(i, num) {i.selected = !i.selected},checkedClear() {this.list.filter(e=>e.selected).forEach(element => {element.selected = false});},submit() {let activeList = []this.list.filter(e=>e.selected).forEach((element,index) => {// activeList.addObject(index)activeList.addObject(element)});this.$emit('baselineSubmit', activeList)this.$emit('update:isVisible', false);this.dataBlock.callLogicDataBlock("addedBaselineSuccess", { "state": 'success' })},addNewCrfAction(){this.$emit('update:isVisible', false);this.$emit('addNewCrfAction',{})},cancel(){this.$emit('update:isVisible', false);this.$emit('cancelAction',{})}}
}
</script><style>.addCrf {height: 60px;width: 200px;line-height: 60px;border: 1px dashed lightgray;background-color: rgb(245, 245, 245);}.items-w {width: 244px;}.main-box {max-height: 300px;overflow-y: auto;}.items-check {right: 10px;top: 25px;}
</style>

在A页面弹出B组件:

此时当你在B组件内部关闭弹窗时,你就不得不在A组件里面同步更新A组件里面的变量baselineShow!否则下次无法弹出此页面。那如何在B组件内部同步修改A组件内的值呢?

核心代码:告诉B组件哪个变量要进行同步修改,进行如下标记;

:isVisible.sync="baselineShow"

切换A里面使用的时候不能这样使用: v-if="baselineShow",如果这样使用则达不到预期的效果!!

<BaselineData v-if="baselineShow" :isVisible.sync="baselineShow" @addNewCrfAction="addNewCrfAction"/>

在B组件内部关闭弹窗时调用:则不必再去手动维护A组件内部的变量baselineShow!

this.$emit('update:isVisible', false);

同样B组件内部的props定义也要注意!

props: {isVisible: {type: Boolean,default:false},
}

相关文章:

  • 使用脚手架创建项目并为拆分页面各自的组件(Web3项目二实战之一)
  • 半导体划片机助力氧化铝陶瓷片切割:科技与工艺的完美结合
  • 科幻未来HUD人工智能科技数据图表仪表盘UI界面AI矢量设计素材图
  • 记录一次云原生线上服务数据迁移全过程
  • 【electron】外语函数接口 FFI
  • 前端开发tips
  • 〖大前端 - 基础入门三大核心之JS篇㊿〗- 面向对象之对象的方法、遍历、深浅克隆
  • 使用postman做接口测试
  • 30 张图解 HTTP 常见的面试题
  • 华为OD机试真题-攀登者1-2023年OD统一考试(C卷)
  • 提示(Prompt)工程中提示词的开发优化基础概念学习总结
  • C# List类常用操作 之 查找
  • HarmonyOS鸿蒙应用开发——HTTP网络访问与封装
  • C/C++语言的安全编码规范
  • ssh安装和Gitee(码云)源码拉取
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • EOS是什么
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JavaScript实现分页效果
  • Java多态
  • mysql 数据库四种事务隔离级别
  • Odoo domain写法及运用
  • scala基础语法(二)
  • Spring声明式事务管理之一:五大属性分析
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 提醒我喝水chrome插件开发指南
  • 新手搭建网站的主要流程
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 译有关态射的一切
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • Java数据解析之JSON
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (arch)linux 转换文件编码格式
  • (C++哈希表01)
  • (独孤九剑)--文件系统
  • (分布式缓存)Redis分片集群
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (六)Flink 窗口计算
  • (南京观海微电子)——I3C协议介绍
  • (三)模仿学习-Action数据的模仿
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)视频码率,帧率和分辨率的联系与区别
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .htaccess 强制https 单独排除某个目录
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET 漏洞分析 | 某ERP系统存在SQL注入
  • .net/c# memcached 获取所有缓存键(keys)
  • .NET/C# 的字符串暂存池