子組件向父組件傳值 this.$emit 和解決選擇數據後被覆蓋問題

Vue组件通信:子组件调用父组件的三种核心方法与实践指南 组件通信是现代前端框架的核心概念,它定义了不同UI模块间数据与行为的交互方式。其基本原理是通过事件驱动或依赖注入机制,实现组件间的解耦与协作。在Vue.js等响应式框架中,掌握高效的组件通信技术对于构建可维护、可复用的应用架构具有关键价值,尤其在表单处理、状态同步和复杂交互等应用场景中至关重要。本文聚焦于Vue开发中的高频需求——子组件如何调用父组件,深入解析自定义事件($emit)、引用访问($parent/refs)和依赖注入(provide/inject)这三种核心方案,帮助开发者根据具体场景选择最优 阅读详情

將彈出的dailog 搜索得到的數據傳給父組件

//子組件
<el-table ref="filterTable" :key="tableKey" v-loading="listLoading" :data="pagination.items" fit highligh-current-row :element-loading-text="$t('commonText.loadingText')" style="width:100%;" @selection-change="handleSelectionChange" @row-click="clickRow">
        <el-table-column label="goodsNo“ prop="goodsNo">
          <template slot-scope="{row}">
            <span>
              {{ row.goodsNo }}
              <!--goodsID-->
            </span>
          </template>
        </el-table-column>
          <el-table-column label="operate" property="operate" type="selection" width="55px">
        <!--    selection -->
</el-table>



    handleSelectionChange(val) {
      this.all
      this.multipleSelection = val
      this.$emit('selectCheckboxData', this.multipleSelection)
      console.log(val)
    },


 

//父組件
//註冊子組件並使用

<cpn @selectCheckboxData="updateData" ></cpn>





updateData(data) {
      this.goodsData = data
      console.log('-----', data)
    },

這樣就實現了將子組件的值傳給了父組件顯示出來

 

在期間遇到了一些問題 

比如 在父組件把數據顯示的時候

         選中後要增加第二條數據 會被覆蓋掉應該和@selection-change="handleSelectionChange"  有關係  待完善-->解決方式

只需要在seleciton 加入  :reserve-selection="true"

Vue事件系统深度解析:从v-on到$emit的响应式交互设计 Vue事件系统并非DOM事件的简单封装,而是连接用户操作与响应式数据的核心枢纽。其本质是将点击、输入等原生行为转化为状态变更信号,依托v-on指令绑定、事件修饰符控制流、custom events定义组件契约,并通过$emit实现父子通信。技术价值在于保障事件流可预测、可调试、可校验——尤其在大型项目中,显式声明events或defineEmits能避免拼写错误导致的静默失败,提升协作效率与线上稳定性。典型应用场景涵盖搜索防抖、评分组件、弹窗关闭确认等高频交互需求,本文结合Vue 2/3差异与真实项目案例, 阅读详情

相关推荐

手把手教你用USBasp给Arduino UNO烧写程序(ICSP模式,含BootLoader选择指南)

本文详细介绍了如何使用USBasp编程器通过ICSP模式为Arduino UNO烧写程序,包括硬件连接、软件配置、Hex文件处理和BootLoader选择指南。内容涵盖从新手入门到高级优化的全流程,帮助开发者高效完成烧写任务,特别适合需要修复BootLoader或进行量产烧写的用户。

weixin_33958381的博客 364

Vue3 $emit指南--包含选项API、组合API以及 setup 语法糖

随着Vue 3.2的发布,一个新的组合工具提供给我们,叫做 。你是否曾经创建过一个需要向模板提供一些方法和属性的组件,但又希望这些方法对组件是私有的,不能被父类调用?如果你在开发一个开源的组件或库,你有可能想保持一些内部方法的私有性。在Vue 3.2之前,这并不容易实现,因为所有在选项API中声明的方法或数据等都是公开的,所以模板可以访问它。组合API也是如此。我们从方法中返回的所有东西都可以被父类直接访问。让我们看一个实际的例子。想象一下,我们有一个组件,它创建了一个计数器,每一秒都会更新这个计数器。**

粉丝们务必加入微信粉丝群 4485

腾讯WeKnora开源了!手把手教你用Docker+Ollama本地部署多模态知识库(附避坑指南)

本文详细介绍了腾讯开源的多模态知识库工具WeKnora的本地部署方法,通过Docker和Ollama实现完全离线运行。文章包含环境准备、核心组件配置、Ollama模型集成、系统启动验证及高级性能调优等实战内容,特别适合需要构建私有化知识库的中小团队和个人开发者。

weixin_30664051的博客 479

Vue this.$emit和this.$on

1、解决第一次监听不到数据的方法 this.$nextTick() this.$nextTick(function () { this.$bus.$emit("yulan", row); }) setTimeout setTimeout(() => { //row 代表要传递的参数数据 this.$bus.$emit("yulan", row); }, 100); 2、子组件传值给父组件 子组件中使用$emit触发事件的值传出去,父组件通过事件监听,获

小葵坤_易安的博客 1万+

华为手环实时心率数据导出到UWP项目中

hello大家好呀O(∩_∩)O最近在做毕设 其中有个小功能要用到实时心率数据。查找网上的资料发现只有小米手环的实时心率数据导出但是没有华为手环的,我试了华为手环但是并不能行得通哈哈哈。现在分享一下华为手环实时心率数据导出的代码。

apple_63713858的博客 1582

弘玑RPA进阶攻略

01.弘玑RPA产品概要。02.设计器的安装与卸载。03.设计器特性与使用。

长安诗社社长@-梁瀚文- https://github.com/HevnChin https://gitee.com/HevnChin 3646

Vue this.$emit()方法

在Vue中 使用它的内置方法 this.$emit( )来触发自定义事件

清風明月_xf 的博客 5003

SQL Server数据库备份与恢复

在 SQL Server 中,数据库备份与恢复是保障数据安全的核心操作。

zjw541806的博客 1876

vue中ref属性,prop属性,this.$emit使用方法,parseTime(js时间格式化)

vef : 被用来给元素或子组件注册引用信息,通俗的讲使用ref可以获取DOM元素,也可以获取子组件示例对象。参数this.linkProjectInfoNum[项目编号]:表示传递给另一个页面的值,参数可以传多个。prop主要用于组件传值,他的工作是为了接收外面传过来的数据,与data,el,ref是一个级别的配置项。注:prop是只读的,vue底层会检测你对props的修改,如果修改了,控制台则会报错。1.只接收:prop:['name','age','sex']` 再跟注册时的名称来引用DOM元素。

2302_76386121的博客 1009

一文吃透:从零到一开发一套 ABAP RAP 应用的完整路径

ABAP RAP开发实战摘要 本文系统介绍了ABAP RESTful Application Programming Model (RAP)在企业级应用开发中的实施路径。文章以出差申请业务场景为例,详细拆解了RAP开发的六步主线流程: 数据库表设计:规范主键、审计字段设计 CDS数据建模:通过视图定义业务对象实体及关联 行为定义与实现:使用BDEF声明事务规则,Behavior Pool类实现业务逻辑 业务对象投影:裁剪服务接口视图 服务定义与绑定:按OData协议暴露服务 UI集成测试:支持Fiori E

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 509

Transformer大模型实战 文本摘要任务

Transformer, 文本摘要, 自然语言处理, 预训练模型, 序列到序列, BERT, BART, T5 1. 背景介绍 文本摘要任务是自然语言处理 (NLP) 领域的重要研究方向之一,旨在从长篇文本中提取关键信息,生成简洁、准确的摘要。随着深度学习技术的快速发展,基于 Tra

AI大模型应用之禅 1340

$emit 传多个参数

<el-button type="primary" size="mini" @click="xxx(item1,item2)">提交</el-button> methods:{ xxx(item1,item2){ this.$emit('on-click', item1, item2); } }

高先生的猫 1725

STM32 stack_size和heap_size大小设置的意义

在使用STM32编程时,一般情况下我们不会关注堆栈空间的大小,因为在STM32的启动文件中,已经帮我们预先设置好了堆栈空间的大小。如下图所示的启动代码中,Stack栈的大小为:0x400(1024Byte),Heap堆的大小为:0x200(512Byte)。 1、若工程中使用的局部变量较多,定义的数据长度较大时,若不调整栈的空间大小,则会导致程序出现栈溢出,程序运行结果与预期的不符或程序跑飞。这时我们就需要手动的调整栈的大小。 2、当工程中使用了malloc动态分配内存空间时,这时分配.......

zxm8513优快云博客 3万+

vue中单向数据流中不允许在子组件修改父组件传过来的props值

**参考:https://blog.csdn.net/xueli_2017/article/details/90579048 vue报错: [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop’s valu

SeeU 1381

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

子组件不能直接改变父组件传递的“道具”值

经常遇到的报错,怎么解决?——Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value.

凯凯凯凯凯凯凯凯 1225

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

vue获取兄弟组件的值2020_Vue(4):Vue兄弟组件传值在echarts点击事件中的使用

前言​ 最近在用Vue+echarts+d3做一个项目,网上大多数是零散的,我把项目中遇到 的问题都总结起来,放在博客下,便于日后查看以及分享一下爬坑经验。​ 我所遇到的困难在网上大多数可以找到,但比较零散,且不好找,这是Vue项目的第四篇博客,因为也是初次使用Vue,所以多详细记录一下。​ 这篇博客主要分享的知识点是Vue中父组件传以及echarts鼠标事件中的父组件传值,还解决了一个在父组件传...

weixin_29310605的博客 507

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

vue 父子组件传值之(父组件如何触发子组件中的方法,子组件调用父组件中的方法)

由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容![外链图片转存中…(img-lHdj7LSD-1720103913074)][外链图片转存中…(img-6BIrFrp0-1720103913076)]

2401_84435192的博客 497

Vue3父子组件通信新姿势:从this.$emit到setup的优雅升级

本文深入探讨Vue3中父子组件通信的革新方式,从传统的this.$emit到setup函数的优雅升级。通过对比Vue2与Vue3的实现差异,详解setup上下文中的emit用法,并提供TypeScript强化、复杂参数传递等实战方案,帮助开发者高效迁移并优化组件通信架构。

weixin_29009881的博客 95

vue弹窗: el-dialog visible.sync触发父组件的update事件

在使用element-ui 中的dialog组件时,发现visible属性在使用时需要添加.sync才生效。 我们先自己创建一个dialog组件,如下 当我们点击关闭按钮时,会发生警告 原因就是在VUE中,prop的传递是单向下行绑定的,也就是说只能父传给子,不能反过来。 虽然在demo中子组件直接修改visible也能够关闭窗口,但是该变量不能传给父组件,所以并不建议这么做,(如果您任性,觉得父组件拿到这个变量也没用,那您尽管在子组件中修改,但是小心父组件的入参变化时会覆盖你的修改) ..

coding 5709

史上最全的vue中组件之间的传值方式

要注意的是 provide 和 inject 传递的数据不是响应式的,也就是说用 inject 接收来数据后,provide 里的数据改变了,后代组件中的数据不会改变,除非传入的就是一个可监听的对象 所以建议还是传递一些常量或者方法。.sync可以帮我们实现父组件向子组件传递的数据的双向绑定,所以子组件接收到数据后可以直接修改,并且会同时修改父组件的数据。和 .sync 类似,可以实现将父组件传给子组件的数据为双向绑定,子组件通过 $emit 修改父组件的数据。

weixin_44953151的博客 1920

vue组件之间的通信

一、子组件把数据传给父组件:this.$emit() 步骤如下:compChart.vue为子组件,sdCompare.vue为父级页面。 1、在子组件中声明变量sericesArr 2、在子组件用$emit()传值给父页面。 3、在父页面中使用子组件<comp-chart></comp-chart>的地方,使用@方法名="子组件方法名" ...

Queen-Shir的博客 2363

VUE组件间的传值方式

Vue2最常见的11种组件间的通讯方式。

blanceage的博客 790

Vue 组件通信

父组件到子组件通信 通过自定义属性传递 //父组件:parent.vue <template> <div> <child :vals = "msg"></child> </div> </template> <script> import child from "./ch...

KevinTseng 234

vue组件间的11种传值方式

当做到比较大的项目时,一个vue文件里面可能要包含上千行代码,这样不利于后期维护与问题定位,抽离成组件就尤其重要了 重中之重的就是组件之间数据传递的几种方式 Vue2最常见的11种组件间的通讯方式 props $emit / v-on .sync v-model ref $children / $parent $attrs / $listeners provide / inject Event...

优快云_KONGlX的博客 107

Vue自定义事件:父子通信的工程化契约与最佳实践

Vue自定义事件是实现单向数据流的核心机制,其本质并非语法糖,而是组件间显式、可预测、作用域受限的通信契约。它基于‘props down, events up’原理,保障组件解耦与可复用性,避免全局污染和隐式依赖。在中大型项目中,合理使用$emit能显著提升状态流向可控性、调试效率与TypeScript类型安全,广泛应用于表单联动、文件上传、搜索交互等高频场景。本文深入剖析其设计哲学、Vue 2/3差异、实操避坑及DevTools排查技巧,助力开发者从vue面试题理解跃迁至vue项目实战落地。

weixin_34367257的博客 417
上一篇: 解決一個高度造成的問題
下一篇: 解決三層 v-for循環數據後v-model綁定el-input 時遇到的坑
低調的D吖
博客等级 码龄14年 9粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值