位置: IT常识 - 正文

vue父子组件传值不能实时更新(vue父子组件传值方法)

编辑:rootadmin
vue父子组件传值不能实时更新

推荐整理分享vue父子组件传值不能实时更新(vue父子组件传值方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue父子组件传值面试题,vue父子组件传值 watch监控调用多吃,vue父子组件传值原理,vue父子组件传值传不过去,vue父子组件传值面试题,vue父子组件传值传不过去,vue父子组件传值实时更新,vue父子组件传值实时更新,内容如对您有帮助,希望把文章链接给更多的朋友!

最近做项目,遇到个大坑,这会爬出来了,写个总结,避免下次掉坑。

vue父子组件传值不能实时更新问题,父组件将值传给了子组件,但子组件显示的值还是原来的初始值,并没有实时更新,为什么会出现这种问题呢?

出现这个问题,可能有以下两个原因:

一、 父组件没有把值传过去,子组件没有获取到最新的值。

二、子组件接收到最新的值了,但是没有实时渲染到视图上。

如果是第一种情况很简单,核对传的参数,确保把最新的值传过去就可以了。

若是第二种情况,稍微有些麻烦,但也可以解决,主要有两种解决方案:

① 利用v-if的重新渲染机制,获取到值之后,将子组件重新渲染一遍。

② 利用watch监听数据,若是数据变化,调用视图渲染方法。

下面,结合项目的实际情况,具体分析这两种方法。

vue父子组件传值不能实时更新(vue父子组件传值方法)

在项目中,将erchart中的生成仪表盘的数据封装了一个子组件,父组件中传给仪表盘一个初始值,后续,调用后台接口返回最新的数据传给这个仪表盘组件的之后,发现仪表盘中的数据并没有实时的更新。仪表盘如下图:

 首先,利用第①种方法,利用v-if渲染机制

设置一个参数reRender。设置v-if=“reRender”,并将reRender初始值设置为false,从后台获取数据之后,将reRender=true。

这样就能够将最新的数据渲染到子组件的视图中了。但这样,如果我在同一个页面中调用了很多次这个子组件,生成多个仪表盘,就需要设置很多个类似于reRender的属性。

那么有的小可爱就提出来了,我设置一个reRender属性,然后几个子组件共用这个属性不就可以了吗,几个后台接口调完更新数据之后在统一将reRender=true。

这种方法,我尝试过了,不可以,我不知道原因。

只有将reRender=true放在那个调接口的方法里,获取到后台数据之后,才可以。尝试了网上提出的强制更新的方法,也不行。

所以,遇到这种一个页面调用多个这种组件的情况,使用v-if就很繁琐。

若是,别人封装了这么一个组件,数据更新的时候还要利用v-if重新渲染一下,那就感觉这个组件可能封装的不是太好,所以,咱们还是完善子组件。

这里就涉及到了第二种方法,设置watch监听,监听数据,当子组件监听到数据发生改变时,调用方法。

监听传的数据,这里面用到了两个属性immediate和deep,在watch中,不会监听初始值,只有当值改变时才会执行handler函数。但是,我们想要在最初赋值的时候,也执行handler函数,就需要用到immediate:true。而普通监听只能监听字符串、数字等值,要想监听到对象中某个属性的变化,就需要用到深度监听deep:true。

 在这之后,我发现控制台报错了, ”TypeError: Cannot read property ‘getAttribute’ of undefined”,如下所示:

 后面查了一些资料是因为:在vue中,数据和dom渲染是异步的,当dom还没渲染,却用数据去赋值的话,就会出现这个问题。解决方法是:利用this.$nextTick()。this.$nextTick()将数据渲染方法放到dom渲染之后,这样就不会出现这个问题了。

 依此,子组件数据就可以实时更新了。如下图:

本文链接地址:https://www.jiuchutong.com/zhishi/297427.html 转载请保留说明!

上一篇:超分扩散模型 SR3 可以做图像去雨、去雾等恢复任务吗?(扩散分类)

下一篇:数据分析| Pandas200道练习题,使用Pandas连接MySQL数据库(数据分析课)

  • 个体工商户能开多少钱的普票
  • 必要收益率的取值可以是
  • 四种股利分配政策类型
  • 金税盘开完票后怎么报税一下
  • 免抵退税办法不得抵扣的进项税额包含了什么业务
  • 企业重组资产转移是否涉税
  • 中小企业怎么避税
  • 房产税原价包括地价吗
  • 办公室低值易耗品管理员职责
  • 先征后返的所得税账务处理
  • 公司土地和厂房可以按折价卖结股东权益吗
  • 软件 企业
  • 外购产品赠送他人合法吗
  • 海关进口需要什么手续
  • 增值税已交税金什么情况下使用
  • 什么情况下要办居住证
  • 有限责任公司企业名称有哪些
  • 摊销合同取得成本分录
  • 未开票收入如何确认
  • 外币折算差额计入什么科目
  • 收到股东交的多余的股金怎么做账务处理
  • 个税在发工资的时候直接扣下来吗
  • 固定资产清查怎么开展
  • 采购医药费差价会计分录
  • 公司开年会的费用谁承担
  • 11的文件管理在哪
  • 预付款无法收回账务处理
  • linux系统中文输入法切换不出来
  • 企业亏损注销税务会不会来查账
  • 收到的税费返还减少说明什么
  • 哪些情况下公司不能辞退员工
  • vue sha256加密
  • linux用cat命令查看
  • 政府会计公共基础设施分类
  • 流动比率取值是取期末
  • 2021新财务报表
  • 什么是记账凭证账务处理程序
  • 结转入库材料计什么科目
  • windows7/windows10/windows11最强Audacity音频编辑播放器软件,免费下载
  • mongodb数据库是哪个公司的
  • 小规模纳税企业在应交增值税明细科目
  • 计提基建借款利息会计分录
  • 清包工一般计税如何开票
  • 小规模纳税人增值税专用发票税率
  • 在建工程项目的范围包括
  • 认证已过期请重新登录
  • 新入职员工什么时候发工资
  • sqlldr 函数
  • 购入交易性金融资产的相关税费计入
  • 教育培训行业人员
  • 支付水电费会计等式
  • 产品成本计算的分批法适用于
  • 支付广告费是什么活动
  • 待抵扣税额怎么做分录
  • 固定资产一次性扣除账务处理
  • 会计账簿按用途分类分为
  • 计税价格里含税吗
  • 日记账的建账工作
  • u盘怎么安装win2012
  • unix和linux是使用较为广泛的多用户交互
  • 华硕安装win7系统
  • 安装centos7安装位置没有磁盘
  • glibc2.14安装
  • win7系统待机设置
  • Win10预览版桌面图标和任务栏不翼而飞怎么办?
  • unity3d怎么查看
  • android Lollipop(5.0)--touch feedback(触摸反馈)
  • c#属性窗口
  • js 严格的迭代语句
  • javascript的基本数据
  • Android之ContentProvider
  • 东莞网上办税服务厅
  • 一般纳税人出租房屋增值税税率
  • 重庆国税电子税务登录
  • 家政公司的清洁工具
  • 发票事业单位有税号吗
  • 非正常户纳税人解除
  • 国家级运动员怎么申请
  • 刚成立小公司的流程
  • 餐饮业财务主管工作总结
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设