首页 > 其他分享 >Vue父组件拿到接口的数据,并把数据传给子组件的问题;同时,父组件数据更新,子组件同样拿到新数据的问题

Vue父组件拿到接口的数据,并把数据传给子组件的问题;同时,父组件数据更新,子组件同样拿到新数据的问题

时间:2024-03-30 10:22:54浏览次数:32  
标签:res watch 拿到 组件 数据 页面

参考文档:https://blog.csdn.net/qq_33723676/article/details/128143924

问题一:父组件向子组件传值,子组件拿到的是空数据。
在vue中,有时需要在父组件页面调用接口时,并把数据传给子组件。一般的做法中,子组件拿不到父组件传过来的值。原因是什么捏???

原因就是:父组件跟子组件获取数据是同时进行的,自然而然,子组件拿到的是父组件传过来的空数据。父组件都还在调用接口拿数据,子组件就已经开始拿了,理想当然的拿不到嘛~

原始做法:
父组件页面

<template>
 <div class="fatherView">
  <son-view :data="formData"></son-view>
 </div>
</template>
 
<script>
 import sonView from '@/components/sonView'
 export default{
  props: {
    clientId: {
      type: Number
    }
  },
  components:{
   sonView
  },
  data(){
   return{
    formData:{}
   }
  },
  created() {
   this.initData()
  },
  methods:{
   initData(){
    this.$api.common.commenPost({
      id:this.$props.clientId,
    },'/hkeeping/forward/forwardRecordDetailById').then(res=>{
      if(200==res.code){
      console.log(res)
        this.formData = res.data
      }
    })
   }
  }
 }
</script>

要把formData传过去

子组件页面

子组件页面打印出来的是空数组,它们的执行顺序是:先打印子组件,再打印父组件接口数据

So,用一个标识判断就行了嘛,在父组件页面来个v-if,成功拿到数据把布尔标识为true,再传给子组件。。。

只需这样,子组件就能拿到有值的数据了。。。

问题二:父组件向子组件传值,父组件值更新,调用子组件方法,方法中拿到的还是旧值。

拿新值肯定是用watch啊,在子组件中用watch深度监听,新值改变就赋值嘛

 

既然说到watch,这里肯定又有坑了…

我传过来的值是个对象来滴,普通的watch来监听是监听不到的,就用了深度监听…

问题也解决了,本篇文章也就到这了,还有什么不懂的可以在评论区留言哈

本文章也很详细介绍了父子组件的传值拿新值问题

 

标签:res,watch,拿到,组件,数据,页面
From: https://www.cnblogs.com/y593216/p/18105163

相关文章

  • openGauss 数据库认证机制
    数据库认证机制可获得性本特性自openGauss1.1.0版本开始引入。特性简介提供基于客户端/服务端(C/S)模式的客户端连接认证机制。客户价值加密认证过程中采用单向Hash不可逆加密算法PBKDF2,有效防止彩虹攻击。特性描述openGauss采用基本的客户端连接认证机制,客户端发起连接请......
  • openGauss 数据库指标采集-预测与异常监控
    数据库指标采集、预测与异常监控可获得性本特性自openGauss1.1.0版本开始引入。特性简介本特性是openGauss集成的、可以用于数据库指标采集、预测以及异常监控与诊断的AI工具,是DBMind套间中的一个组件。当前通过兼容Prometheus平台来采集数据库系统的指标,提供Prometheusexpo......
  • openGauss 数据加密存储
    数据加密存储可获得性本特性自openGauss1.1.0版本开始引入。特性简介提供对导入数据的加密存储。客户价值为客户提供加密导入接口,对客户认为是敏感信息的数据进行加密后存储在表内。特性描述openGauss提供加密函数gs_encrypt_aes128()、gs_encrypt()和解密函数gs_decrypt......
  • openGauss 使用kubernetes部署分布式数据库
    使用kubernetes部署分布式数据库可获得性本特性自openGauss2.1.0版本开始引入。特性简介一键式部署分布式数据库。客户价值快速完成分布式数据库搭建,验证和使用分布式能力。特性描述通过patroni实现计划内switchover和故障场景自动failover,通过haproxy实现openGauss主备......
  • openGauss 全密态数据库等值查询
    全密态数据库等值查询可获得性本特性自openGauss1.1.0版本开始引入。特性简介密态数据库意在解决数据全生命周期的隐私保护问题,使得系统无论在何种业务场景和环境下,数据在传输、运算以及存储的各个环节始终都处于密文状态。当数据拥有者在客户端完成数据加密并发送给服务端后......
  • openGauss 动态数据脱敏机制
    动态数据脱敏机制可获得性本特性自openGauss1.1.0版本开始引入。特性简介数据脱敏是行之有效的数据库隐私保护方案之一,可以在一定程度上限制非授权用户对隐私数据的窥探。动态数据脱敏机制是一种通过定制化制定脱敏策略从而实现对隐私数据保护的一种技术,可以有效地在保留原始......
  • openGauss 数据库审计
    数据库审计可获得性本特性自openGauss1.1.0版本开始引入。特性简介审计日志记录用户对数据库的启停、连接、DDL、DML、DCL等操作。客户价值审计日志机制主要增强数据库系统对非法操作的追溯及举证能力。特性描述数据库审计功能对数据库系统的安全性至关重要。数据库安全......
  • openGauss 分布式数据库能力
    分布式数据库能力可获得性本特性自openGauss2.1.0版本开始引入。特性简介基于分布式中间件shardingsphere使openGauss具备分布式数据库能力。使用32个鲲鹏920(128核)节点组网(1*shardingsphere-proxy,11*shardingsphere-jdbc,20*openGauss)时,完美sharding性能>2100万tpmc。......
  • 图像分类实战:深度学习在CIFAR-10数据集上的应用
    1.前言        图像分类是计算机视觉领域的一个核心任务,算法能够自动识别图像中的物体或场景,并将其归类到预定义的类别中。近年来,深度学习技术的发展极大地推动了图像分类领域的进步。CIFAR-10数据集作为计算机视觉领域的一个经典小型数据集,为研究者提供了一个理想的......
  • 基于深度学习的生活垃圾智能分类系统(微信小程序+YOLOv5+训练数据集+开题报告+中期检查
    摘要    本文基于Python技术,搭建了YOLOv5s深度学习模型,并基于该模型研发了微信小程序的垃圾分类应用系统。本项目的主要工作如下:    (1)调研了移动端垃圾分类应用软件动态,并分析其优劣势;分析了深度学习在垃圾分类领域的相关应用,着重研究了YOLO系列的工作原理和......