vue2 父子组件传参 回调函数使用

关键点:
父组件给子组件动态传参使用v-bind:属性key(多个单词用下划线拼接)
子组件接收父组件传参参数使用 props标签,+属性key多个单词用驼峰形式拼接)

子组件定义回调父组件函数
子组件:
v-on:change="uploadFile()

父组件:
:after-upload=“afterUpload”
然后定一个afterUpload(resp)方法接收子组件传过来的值

    <div class="col-sm-10"><file :text="'上传头像1'":input-id="'image-upload'":suffixs="[ ['jpg', 'jpeg', 'png']]":after-upload="afterUpload"></file>
<script>
import File from "../../components/file";export default {components: {File},name: "business-teacher",data: function () {},mounted: function () {},methods: {afterUpload(resp) {let _this = thislet image = resp.content;_this.teacher.image = image}}
}
</script>

子组件

<template><div><button type="button" v-on:click="selectFile()" class="btn btn-white btn-default btn-round"><i class="ace-icon fa fa-upload"></i>{{ text }}</button><input class="hidden" type="file"ref="file"v-on:change="uploadFile()"v-bind:id="inputId+'-input'"></div>
</template><script>
export default {name: 'file',props: {text: {default: "上传文件"},inputId: {default: "file-upload"},suffixs: {default: []},afterUpload: {type: Function,default: null},},data: function () {return {}},methods: {uploadFile() {let _this = this;let formData = new window.FormData();let file = _this.$refs.file.files[0];// 判断文件格式let suffixs = _this.suffixs;let fileName = file.name;let suffix = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length).toLowerCase();let validateSuffix = false;for (let i = 0; i < suffixs.length; i++) {let suffix2 = suffixs[i] += ''if (suffix2.toLowerCase() === suffix) {validateSuffix = true;break;}}if (!validateSuffix) {Toast.warning("文件格式不正确,只支持上传:" + suffixs.join(","));//解决 同一个文件上传2次或者大于2次,不会发生变化$("#" + _this.inputId + "-input").val("");return}// key:"file"必须和后端controller参数名一致formData.append("file", file);Loading.show()_this.$api.post(process.env.VUE_APP_SERVER + '/file/admin/upload', formData).then((response) => {Loading.hide()let resp = response.dataconsole.log("上传文件成功:", resp)//回调父组件函数_this.afterUpload(resp)//解决 同一个文件上传2次或者大于3次,不会发生变化$("#" + _this.inputId + "-input").val("");})},selectFile() {let _this = this// console.log("_this.inputId",_this.inputId)$("#" + _this.inputId + "-input").trigger("click");}},
}
</script><style scoped>
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“智慧停车+智慧交通”提高市民出行效率和体验

公司介绍 我们是一家智慧停车公司&#xff0c;专注于专业停车场技术研发以及技术服务。主营业务是专业停车场技术研发。 我们公司提出先进的“智慧停车智能交通”解决方案&#xff0c;以大数据平台架构、人工智能技术及软硬件集成融合&#xff0c;通过产品技术创新与商业模式创…

@webservice报错org.apache.cxf.common.i18n.UncheckedException: No operation was found with

文章目录1. 现象2. 解决办法13. 解决办法21. 现象 整合springcxf的webservice,成功发布了wsdl,但在调用的时候报错 org.apache.cxf.common.i18n.UncheckedException: No operation was found with; 2. 解决办法1 : 在service接口中添加targetNamespace package com.gblfy.s…

js判断一个字符串 是否存在在另一个字符串

vue项目中判断当前页面是否存在某个动态路由路径 let title that.$route.path; //获取当前路由路径 let routerStr that.$store.state.route_url; //某个动态路由 function isContains(title, routerStr) { return title.indexOf(routerStr) > 0; } console.log(isConta…

“校园安全+教务管理+家校互动+教育大数据”创造安全的家校生态环境

公司介绍 我们主营业务为线上教育&#xff0c;旨在开创“物联网校园安全教务管理学习资源家校互动教育大数据”业务模式&#xff0c;创造更加安全和谐的家校生态环境。我们公司需要参照国外总公司系统开发一套国内业务系统。 客户痛点 我们作为国内新注册的公司&#xff0c;对未…

Web 前端,易学难精,没有拿手的实战项目,怎么办?

今年受经济下行与疫情叠加的影响&#xff0c;毕业生有800多万&#xff0c;就业形势十分严峻&#xff0c;但即便如此&#xff0c;Web 前端人才在软件开发行业的就业市场中依旧供小于求&#xff0c;目前&#xff0c;全国总缺口每年大约为近百万人。行业对前端需求量持续增加&…

快速入门容器服务,创建Kubernetes集群

使用须知 创建集群过程中&#xff0c;容器服务会进行如下操作&#xff1a; 创建 ECS&#xff0c;配置管理节点到其他节点的 SSH 的公钥登录&#xff0c;通过 CloudInit 安装配置 Kubernetes 集群。 创建安全组&#xff0c;该安全组允许 VPC 入方向全部 ICMP 端口的访问。 如果…

spring5.x cxf3.4.x 服务端和客户端 非maven版本

文章目录一、资料准备1. 官网链接2. 解压3. 依赖梳理二、spring集成cxf2.1.创建spring项目2.2. 创建接口2.3. impl2.4. spring-cxf.xml2.5. 客户端2.6. 开源项目一、资料准备 1. 官网链接 http://cxf.apache.org/download.html 下载apache-cxf-3.4.5.zip 2. 解压 3. 依赖梳…

Vue导航点击路由跳转后样式不变

Vue导航点击路由跳转后样式不变 <template><ul><li :class"{active:isActive1}" click"myOrder(1)">统计分析</li><li :class"{active:isActive2}" click"myOrder(2)">订单中心</li><li :cla…

2019年中国IaaS公有云市场排名及份额出炉

来源 | 艾瑞咨询随着政府、企业的数字化转型如火如荼地推进&#xff0c;云服务作为国家数字经济产业的“基座”&#xff0c;正日益彰显出其重要的战略意义。尽管基础算力和网络的供给已较为充分&#xff0c;但云服务正在使这些IT基础资源更加普惠化&#xff0c;让数字红利流向…

专有网络(VPC)的六大应用场景

专有网络&#xff08;VPC&#xff09;是完全隔离的网络环境&#xff0c;配置灵活&#xff0c;可满足不同的应用场景。 托管应用程序 您可以将对外提供服务的应用程序托管在VPC中&#xff0c;并且可以通过创建安全组规则、访问控制白名单等方式控制Internet访问。您也可以在应用…

应用配置管理ACM 使用场景快速入门

本文以一个例子介绍了如何使用 ACM 的命名空间&#xff08;Namespace&#xff09;功能&#xff0c;为应用在测试、预生产和生产环境下的同一个配置设置不同的值。 背景信息 在本示例任务中&#xff0c;我们将使用 ACM 的命名空间&#xff08;Namespace&#xff09;功能&#xf…

cxf javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)

文章目录1. 现象2. 解决方案13. 解决方案21. 现象 CXF 在和xercesImpl.jar冲突的时候&#xff0c;抱错javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z); 2. 解决方案1 将xercesImpl.jar替换xercesImpl:2.9.1就可以了 maven集成坐标 <depend…

vue切换css样式

vue通过点击控制多个元素的css样式 <div class"hide-class" v-for"(item,index) in list" :class"{activeClass: rSelect.indexOf(item)!-1}" click"showdifference(item,index)" ><div class"c…

三本毕业!入职华为!年薪200万!他凭什么?

前几天&#xff0c;华为第二批“天才少年”入选名单更新了&#xff0c;随之登上知乎的是这样一个热搜&#xff1a;“如何看待武昌理工学院2009级本科生张霁入选华为“天才少年“计划并且年薪位于最高档&#xff1f;”从三本到年薪200万的高薪offer&#xff0c;张同学堪称是读书…

利用云数据库 MongoDB ,为你的业务创建单节点实例

本文以一个例子介绍了如何使用 ACM 的命名空间&#xff08;Namespace&#xff09;功能&#xff0c;为应用在测试、预生产和生产环境下的同一个配置设置不同的值。 背景信息 在本示例任务中&#xff0c;我们将使用 ACM 的命名空间&#xff08;Namespace&#xff09;功能&#xf…

java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion

java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion问题解决方法,导致本文问题的原因是缺少一个xerces.jar 包 maven集成坐标 <dependency><groupId>xerces</groupId><artifactId>xercesImpl</artifactId><…

互联网、电商及游戏行业实时BI分析方案

场景描述 本文以电商行业为例&#xff0c;将业务数据和日志数据同步到ADB&#xff0c;之后通过Quick BI做实时可视化分析。相对于传统的关系型数据库&#xff0c;阿里云分析型数据库MySQL版只需要几毫秒的时间&#xff0c;即可查询PB级数据并从中找到匹配信息。 解决问题 互联…

数据平台、大数据平台、数据中台……傻傻分不清?这次终于有人讲明白了!

来源 | 智领云科技造概念&#xff0c;在IT行业可不是一件陌生的事儿&#xff0c;中文博大精深&#xff0c;新名词、新概念往往简单准确&#xff0c;既可以被大众接受&#xff0c;又可以被专家把玩&#xff0c;真正做到雅俗共赏、各有趣味。近年来&#xff0c;数据中台之火爆&am…

vue控制元素样式css的隐藏和显示

vue动态控制元素样式css的隐藏和显示 <template><div click"clickbj(i)"> //i 为父元素 for 循环的 index点击</div><div mouseleave"mouseLeave(i)" class"box" :class"{disbox:isBianjii}"><div cla…

Github 2023-12-25开源项目周报 Top15

根据Github Trendings的统计&#xff0c;本周(2023-12-25统计)共有15个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目7Go项目2非开发语言项目2Dart项目1TypeScript项目1Rust项目1Kotlin项目1 GPT-Engineer: 自然语言编…