vue父子传值、调用子组件方法

Vue3 父子组件传值相互调用方法,兄弟组件传值相互调用方法 fill:#333;color:#333;color:#333;fill:none;父组件子组件1子组件2孙子组件孙子组件。 阅读详情

vue传值

  • 父组件可以使用props把数据传给子组件

  • 子组件可以使用$emit,让父组件监听到自定义事件

<!-- 父组件 -->
<template>
    <div>
        <!-- v-on:test="..."(缩写为@test)  子组件方法 = 父组件方法 -->
        <argument ref="argument" :argumentId='..绑定的值..' :content='..绑定的值..' @test="loading"/>       
    </div>
</template>
​
<script>
import argument from '...'   // 引入
​
export default {
    name: '...',
    components: {
      ...       // 注册组件  
    },
    methods: {
        loading(val) {      // val为传过来的值
            ...             // 对val进行处理
        }
        test() {
            // 调用子组件方法
            this.$refs.父组件绑定的ref值.方法
        }
    }
}
​
</script>
​
​
<!-- 子组件 -->
<template>
    <div>
        
        
    </div>
</template>
​
<script>
export default {
    props: {                    
        // 父传子的方法
        'argumentId': Number,
        'content': String,
        'draft': Number,
        'getArgumentId': Function,
        'home': Object
    },
    
    data () {
        return {
            assignmentTest: ......
        }
    }
    
    methods: {
        load() {
            ...
            // 子传父
            // 对test进行注册('方法名',参数)
            this.$emit('test', this.assignmentTest)     
            ...
        }
    }
    
}
</script>

vue使用ref调用子组件方法,数据问题(看到了,记下笔记)

问题:在vue父子组件传值过程中,使用ref去调用子组件方法,没有在子组件中使用watch监听来调用调用子组件方法(使用watch就不会有这个问题)

// 父组件
<child :keyword='keyword' ref='child'></child>
<button @click='handlerChild'>调用子组件方法</button>
export default {
  data(){
    return(){
        keyword:''
    }
  },
  methods:{
    handlerChild(){
      this.$refs.child.getKeyWord()
    }
  } 
}
// 子组件
export default {
  props:{
    keyword:String
  },
  methods:{
    getKeyWord(){
      console.log(this.keyword)
    }
  } 
}

期望值:当父组件改变,子组件props接受,父组件调用子组件数据打印传递数据 结果:每次子组件打印都是上一次父组件传值过来的值???我也一时有点懵,难道props不是实时更新父组件传值过来的值吗?再利用watch监听以下keyword,没问题啊,监听每次都是显示父组件传值过来值,那么问题出在???

没错,问题出在了 this.$refs.child.getKeyWord()

vue官网找到:

ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例:

关于 ref 注册时间的重要说明:因为 ref 本身是作为渲染结果被创建的,在初始渲染的时候你不能访问它们 - 它们还不存在!$refs 也不是响应式的,因此你不应该试图用它在模板中做数据绑定。

可能你还没有注意到,Vue 在更新 DOM 时是异步执行的。只要侦听到数据变化,Vue 将开启一个队列,并缓冲在同一事件循环中发生的所有数据变更。如果同一个 watcher 被多次触发,只会被推入到队列中一次。这种在缓冲时去除重复数据对于避免不必要的计算和 DOM 操作是非常重要的。然后,在下一个的事件循环“tick”中,Vue 刷新队列并执行实际 (已去重的) 工作。Vue 在内部对异步队列尝试使用原生的 Promise.then、MutationObserver 和 setImmediate,如果执行环境不支持,则会采用 setTimeout(fn, 0) 代替。 例如,当你设置 vm.someData = 'new value',该组件不会立即重新渲染。当刷新队列时,组件会在下一个事件循环“tick”中更新。多数情况我们不需要关心这个过程,但是如果你想基于更新后的 DOM 状态来做点什么,这就可能会有些棘手。虽然 Vue.js 通常鼓励开发人员使用“数据驱动”的方式思考,避免直接接触 DOM,但是有时我们必须要这么做。为了在数据变化之后等待 Vue 完成更新 DOM,可以在数据变化之后立即使用 Vue.nextTick(callback)。这样回调函数将在 DOM 更新完成后被调用

如此我们只需要在调用子组件的方法时添加this.$nextTick(callback) 解决

// 父组件
<child :keyword='keyword' ref='child'></child>
<button @click='handlerChild'>调用子组件方法</button>
export default {
  data(){
    return(){
        keyword:''
    }
  },
  methods:{
    handlerChild(){
      this.$nextTick(() => {
          this.$refs.child.getKeyWord()
      })
    }
  } 
}

别再手动抄表了!用PaddleOCR超轻量模型5分钟搞定数字仪表识别(附完整Python代码) 本文介绍如何利用PaddleOCR超轻量模型快速实现工业仪表数字识别自动化。通过5行核心代码和关键预处理步骤,显著提升识别准确率至98.2%,解决传统OCR在工业场景中的体积大、抗干扰弱等问题,并提供完整Python代码和边缘部署优化方案。 阅读详情

相关推荐

【rt-thread实战解析】从零到一:基于STM32与LAN8720A的以太网驱动配置全流程

本文详细解析了在RT-Thread操作系统上为STM32F407配置LAN8720A以太网驱动的全流程。从硬件连接自查、CubeMX工程创建、PHY复位函数编写,到RT-Thread工程配置、LwIP协议栈集成,最后进行实际上电测试与网络调试,手把手指导开发者避开常见陷阱,实现稳定的以太网连接。

m2n3b4v5c6的博客 525

Vue父子组件互传数据详细流程

vue父子组件数据互传详细流程(亲测有效)

m0_54355172的博客 2270

别再手动巡检了!用Zabbix 5.0 + SNMPv2自动监控华为S系列交换机(附完整命令集)

本文详细介绍了如何利用Zabbix 5.0与SNMPv2实现华为S系列交换机的自动化监控,告别低效的手动巡检。通过配置SNMPv2c安全基线、核心功能启用及Zabbix Server端深度配置,构建7×24小时监控体系,实时预警接口状态、流量波动等关键指标,大幅提升运维效率与故障响应速度。

weixin_30940783的博客 628

vue父子组件相互调用方法和获取data中的数据

给子组件标签加ref,然后通过this.$refs.childData.方法。1、父组件获取子组件data数据和子组件方法。2、子组件获取父组件data数据和子组件方法。子组件通过this.$parent.方法获取。

coldriversnow的专栏 1270

3D Slicer + MONAI Bundle实战:如何用Wholebrainseg模型快速分割133个脑区(附避坑指南)

本文详细介绍了如何利用MONAI Model Zoo中的Wholebrainseg模型,在3D Slicer环境中高效分割133个脑区。文章重点提供了数据预处理、GPU推理加速及结果精修等实战技巧与避坑指南,旨在帮助医学影像研究者和开发者提升全脑分割的精度与效率。

311

C++,使用Qt设计一个登录窗口

使用Qt设计一个登录界面

heyu0311的博客 2991

vue父组件给子组件传值,并在子组件方法中使用该值

【代码】vue父组件给子组件传值,并在子组件方法中使用该值。

qq_45991812的博客 2165

四款办公Agent实测对比:WorkBuddy、千问办公、库库AI、豆包工作怎么选

AI Agent是一种能感知环境、自主决策并执行动作的智能系统,其核心在于工具调用、状态管理与错误恢复构成的执行闭环。在办公场景中,任务边界清晰、容错率高、重复性强,使Agent成为最容易落地的方向。通过调用本地文件、脚本或办公套件,Agent能自动完成文件批量处理、文档摘要、会议纪要等重复劳动,显著提升工作效率。目前WorkBuddy、千问办公、库库AI、豆包工作等产品分别从本地操作、办公套件嵌入、知识处理、轻量助手等路线切入,用户可根据自身场景选择。

weixin_29052717的博客 522

Vue解决父子组件传值,子组件改变值后父组件的值也改变的问题

描述: vue开发过程中,父组件通过props传值给子组件,子组件在页面展示父组件的值,在操作子组件值以后,即使不点击确定按钮,父组件中的值也发生了变化,但是需求是操作子组件数据以后,必须点击’确定’按钮以后才能修改父组件的值,否则父组件和子组件的值都不可以变化。 思路: 为了解决这一问题,当父组件传值给子组件以后,通过 JSON.parse(JSON.stringify(data ))将父组件的数据进行拷贝,然后赋值给子组件中字段,子组件操作只是改变的子组件的值,而不会改变父组件的值,当点击‘’确定‘’按

weixin_42757570的博客 4962

模型瘦身术:YOLOv5无损剪枝实战教程

本文介绍了一种YOLOv5模型的无损剪枝方法,通过"稀疏训练+结构化剪枝+微调"的流程,在不损失精度的前提下显著减小模型尺寸并提升推理速度。具体步骤包括:1)稀疏训练给参数排优先级;2)裁剪不重要通道;3)微调恢复精度;4)验证效果。实战部分详细展示了从环境搭建到剪枝实现的完整流程,并分析了剪枝后在边缘设备部署、实时检测等场景的优势。该方法可使YOLOv5s模型从14MB缩减至2-3MB,推理速度提升30%-50%,适用于资源受限设备的轻量化部署需求。

LXY_LOVE36的博客 104

锂电池SOH预测 | 基于BP神经网络的锂电池SOH预测(附matlab完整源码)

锂电池SOH预测 | 基于BP神经网络的锂电池SOH预测(附matlab完整源码)

天天酷科研的博客 1114

Vue 组件封装,父组件传参给子组件,子组件调用父组件。

在 Vue 的组件化开发中,父组件与子组件的通信是常见需求。通过props,父组件可以向子组件传递数据;通过$emit事件,子组件可以通知父组件执行相应的操作。这样的单向数据流和事件通信机制,保证了组件之间的解耦和代码的可维护性。

qyhua的专栏 1599

『杭电1199』Color the Ball

Problem Description There are infinite balls in a line (numbered 1 2 3 ....), and initially all of them are paint black. Now Jim use a brush paint the balls, every time give two integers a b and follow by a char 'w' or 'b', 'w' denotes the ball from a to

漠宸离若的博客 497

Vue父子组件之间的传值及父子组件之间相互调用属性或方法

父组件向子组件传值:通过属性传入,子组件通过props定义与传入属性相同的变量接收;子组件向父组件传值:通过子组件的$emit自定义事件,父组件通过监听子组件定义的事件获取子组件传的值;...

weixin_45995139的博客 3351

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

vue父子组件之间的传值,及互相调用父子组件之间的方法

除了通过props接收父组件传递的值外,还可以通过this.$parent.countryName获取父组件的值。通过:$parent 以及 $emit。

文龙刚的博客 2483

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

vue父子组件之间传值,以及之间方法调用

该文章主要记录在工作中经常使用的小知识点、注意点、遇到的小问题 vue父子组件传值,调用方法 父传子值,父调用子方法 父组件向子组件传值(引入子组件→在引入的子组件绑定需要传送的值→子组件props接收) <!-父组件---> <template> <div> <child :msg="msg"></child> <...

weixin_43264322的博客 873

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

vue-router父子组件传值及方法调用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、实现代码总结 前言 父子组件之间的传值和方法调用经常用到,导航栏的全局搜索就可以通过这个实现。简单写个demo练习一下。 一、实现代码 father.vue代码: <template> <div class="father"> <button v-on:click="runSonMd">调用子组件方法</button> <!--@faMethod=.

qq_39176307的博客 1255

Vue3 父子组件互相调用方法,以及互相传值

子组件,1. 有一个表格显示来自父组件的数据。2.一个按钮,用于测试调用父组件的方法。父组件,只有一个按钮,用于测试调用子组件的方法,和接收子组件的数据。1. 需要给子组件定义一个引用名。

y523648的博客 1万+

vue父子组件间传值,父子组件间调用方法

目录 1.父组件向子组件传值 父组件里子组件的应用 父组件向子组件传值 <LoginDialog:showMask="showMask" ></LoginDialog> showMask需要在data里定义 子组件里接收父组件对的传值 可以用watch监听父组件传来的值 ...

小毛每天要顺毛的博客 516

Vue父子组件相互传值及调用方法的方案

Vue父子组件相互传值及调用方法的方案 一.调用方法: 1.父组件调用子组件方法: 2.子组件调用父组件方法: 参考:https://www.cnblogs.com/jin-zhe/p/9523782.html 3.子组件调用子组件的方法: 二.传值: 1.父组件向子组件传值: 2.子组件向父组件传值: 3.子组件向子组件传值: 转载于:https://www....

dazhexuan0219的博客 441

vue实现父子组件的互相传值及调用方法

1.父级组件调用子组件及传值 (1)命名 组件命名使用驼峰命名法,如addStudent 引用时,用短横线连接,如: <add-student></add-student> 2、引用 将组件页面import进入当前页面,并在componens里注册组件 import addStudent from "./components/addStudent"; export default { components: { addStudent }, } 3、传值 父组件通过

weixin_44988028的博客 488

Vue(非)父子组件的传值以及方法调用

1.vue父组件给子组件传值的方法<heador :userName="username"></heador>子组件中通过props接收传值props:{ username:{ type:String, default:"" }} 2.vue父组件调用子组件的方法<heador ref="head...

weixin_34085658的博客 476

VUE—父子组件传值、改值、调用方法。。。。

VUE—父子路由传值(控制显示隐藏) 方法一: 子路由 <input @click="changed" readonly type="text"> methods: { changed () { this.$emit('changedFn', true) // 参数一:事件名 参数二:传递的值 } } 父路由 <Inp...

Poppy_LYT的博客 2952

vue父子组件传值,以及父子之间方法的调用

1,子组件向组父组件传值 //1子组件使用emit向父组件传值 this.$emit('fFunction',data); //2,父组件引入子组件的 //3,父组件 在子组件上绑定点击事件 @fFunction = "fFunction" //4,父组件在方法中取到子组件的值 fFunction(data){ console.log(ddata); } 2,父组件向子组件传值 //1,引入子组件 //在子组件上使用:data="data"的方式在子组件上传值 //2,子组件使用prop.

qq_37655448的博客 257

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

文章目录 1.什么是组件? 2.使用组件 3.父传给子的方法 4.子传给父的方法 组件 1.什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能。在有些情况下,组件也可以表现为用is特性进行了扩展的原生 HTML 元素。 所有的 V...

IT博客技术分享 2172

vue 父子组件传值以及方法调用,平行组件之间传值以及方法调用大全

vue项目经常需要组件间的传值以及方法调用,具体场景就不说了,都知道。基本上所有的传值都可以用vuex状态管理来实现,只要在组件内监听vuex就好。 vue常用的传值方式以及方法有: 1. 父值传子(props)   1-1:解决一个项目中遇到的问题,父组件给子组件传值第一次子组件是可以接受的,     但是在父组件中这个值改变了,在子组件中这个prop的值还是第一次父组件传给的值。 2...

AI架构师-CJF 1624
上一篇: Typora 安装包汇总【包含 v1.0 和最后一个免费版】
下一篇: base64格式 与 blob格式 互相转换
HahaMonsters
博客等级 码龄8年 2324粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值