位置: 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数据库(数据分析课)

  • 光碟装系统步骤win7(光碟装系统)(光碟装系统教程)

    光碟装系统步骤win7(光碟装系统)(光碟装系统教程)

  • 酷狗可以两个人一起听歌吗(酷狗可以两个人一起登陆吗)

    酷狗可以两个人一起听歌吗(酷狗可以两个人一起登陆吗)

  • 美团自提在哪里选择(美团自提在哪里买)

    美团自提在哪里选择(美团自提在哪里买)

  • 快手怎么保存视频到本地相册(快手怎么保存视频不带快手号)

    快手怎么保存视频到本地相册(快手怎么保存视频不带快手号)

  • sandboxie是什么(sandboxed)

    sandboxie是什么(sandboxed)

  • 怎么查看微信发来照片的拍摄时间(怎么查看微信发了多少消息)

    怎么查看微信发来照片的拍摄时间(怎么查看微信发了多少消息)

  • 淘宝评价6个月可以自动删除吗(淘宝评价6个月自动删除吗)

    淘宝评价6个月可以自动删除吗(淘宝评价6个月自动删除吗)

  • 创建的主控文档能不能转为普通文档(创建的主控文档怎么删除)

    创建的主控文档能不能转为普通文档(创建的主控文档怎么删除)

  • win10立体声混音有啥用(win10立体声混音驱动)

    win10立体声混音有啥用(win10立体声混音驱动)

  • iphonex屏幕泛红正常吗(iphone xs屏幕偏红)

    iphonex屏幕泛红正常吗(iphone xs屏幕偏红)

  • iphone锁屏断开wifi(iPhone锁屏断开热点)

    iphone锁屏断开wifi(iPhone锁屏断开热点)

  • 怎么更改微信名(微信公众号怎么更改微信号)

    怎么更改微信名(微信公众号怎么更改微信号)

  • h310和b365区别(h310和b365的区别)

    h310和b365区别(h310和b365的区别)

  • 手机摔了会影响信号吗(手机摔了会影响cpu吗)

    手机摔了会影响信号吗(手机摔了会影响cpu吗)

  • 超大规模集成电路计算机是第几代计算机(超大规模集成电路先进光刻理论与应用)

    超大规模集成电路计算机是第几代计算机(超大规模集成电路先进光刻理论与应用)

  • word如何删除空白页数(word如何删除空白页快捷键)

    word如何删除空白页数(word如何删除空白页快捷键)

  • word开始菜单不显示(word2003开始菜单不显示)

    word开始菜单不显示(word2003开始菜单不显示)

  • 苹果x可以用5g网络吗(iphonex能用5g)

    苹果x可以用5g网络吗(iphonex能用5g)

  • 苹果11抗摔吗(苹果11抗摔嘛)

    苹果11抗摔吗(苹果11抗摔嘛)

  • 华为20i什么时候上市(华为20s什么时候发布)

    华为20i什么时候上市(华为20s什么时候发布)

  • 能把美颜还原的app叫啥(能把美颜还原的手机)

    能把美颜还原的app叫啥(能把美颜还原的手机)

  • iqoo要不要更新系统

    iqoo要不要更新系统

  • mate20发布时间(mate20系列发售价)

    mate20发布时间(mate20系列发售价)

  • 相册管家怎么导出照片(相册管家怎么导出照片到新手机)

    相册管家怎么导出照片(相册管家怎么导出照片到新手机)

  • windows无法自动检测此网络的代理设置(windows无法自动修复)

    windows无法自动检测此网络的代理设置(windows无法自动修复)

  • 补发工资如何计提
  • 打车发票丢了怎么办
  • 土地出让金评估费怎么算
  • 购买资产佣金应该怎么算
  • 预付了订金收到发票怎么做分录?
  • 软件研发购买的测试用的设备应该怎么做账?
  • 劳务费发票是几个点的税率
  • 如何查一张发票有没有作废
  • 水利基金减免政策2022
  • 做内账有风险还是做外账有风险
  • 代开专票地税附加税申报办法
  • 2019年煤炭
  • 小规模纳税人应纳税额减征额怎么算
  • 城建税及教育费附加计提表
  • 价外费用的会计和税务处理
  • 公司注销后款未收完怎么办
  • 合并企业的增值税税率
  • 一般人企业所得税怎么算
  • 工程用的叉车计提折旧记到什么科目?
  • 公益性捐赠税前扣除资格认定程序
  • 或有事项确认预计负债的分录
  • 交了预付款后,一方违约怎么处理
  • sinutrain破解版
  • 为什么windows10关机后自动开机
  • php教程零基础入门
  • 发票作废重扣税怎么办
  • php实现验证码功能
  • 员工的生活费会不会扣个税
  • 加工制造业包括
  • 委托加工物资增值税计税依据
  • php use function
  • thinkphp jquery实现图片上传和预览效果
  • 多计提的个人所得税怎么冲回
  • thinkphp登录验证
  • 新注册的小公司要登记社保吗
  • 软件成本如何归类管理
  • 租金的支付期限是多久
  • 待报解预算收入是什么意思,扣了钱
  • 公司法人的分类是什么
  • 什么情况下提供个人征信
  • 一般纳税人领票提交什么资料
  • 个人独资公司对外如何承担责任
  • 基本户收到款不入账
  • 房地产行业概况
  • 对公账户收钱要手续费吗
  • 月末结转增值税怎么算
  • 土地前期开发费用属于开发成本吗
  • 购入汽车当月需要计提折旧吗
  • 解除职工劳动关系补偿
  • 冲减以前年度未开票收入开票如何申报小规模纳税人
  • 办土地证费用会退吗
  • 固定资产建账为什么不能直接输入名字
  • sqlserver数据库定时任务
  • myeclipse自动生成get set
  • mysql索引的使用和原理
  • msi安装错误代码2503
  • linux top命令详解内存过高查询
  • win10系统开机弹文件资源管理器窗口
  • dropbox怎么在国内使用
  • 怎么更改window系统字体
  • linux压缩文件tar命令
  • win7系统清理c盘空间不足
  • linux文件中添加内容
  • linux简单常用命令
  • div滚动条怎么设置
  • 认识 认知
  • opengl绘图
  • 仿京东首页html5
  • unity3d碰撞体
  • 请问在javascript程序中
  • javascript零基础
  • jquery-easyui-1.3.3
  • ApplicationId与PackageName的区别
  • androidsdk的计算机
  • 增值税普通发票需要交税吗
  • 个人所得税完税证明怎么开具
  • 航天金税开票软件服务费可以抵扣税款吗
  • 个体工商户自己开普票流程
  • 财税公司工资怎么样
  • 北京地税局报税流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设