Vue 父组件向子组件传递动态参数,子组件如何实时更新

本文介绍在Vue中,如何使子组件根据父组件传递的参数变化实时更新数据。通过使用watch监听对象类型的参数,并设置immediate为true,可以实现在参数变化时自动更新子组件数据。此外,还介绍了监听普通类型和数组类型数据的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目问题介绍:父组件中填入各种查询条件,点击查询按钮查出符合条件的数据。其中,数据列表是引入的子组件。第一次加载的时候,子组件数据正常显示,再次查询的时候子组件怎么实现实时更新呢?

 

解决办法:子组件watch中(监听)父组件数据的变化

 

以自己的项目为例:

父组件:这是父组件中如何引用的子组件。testParams是我需要传过去的参数对象。参数名是params。

子组件:子组件通过props接收数据:

子组件中watch监听对象类型的数据

//immediate表示在watch中首次绑定的时候,是否执行handler,值为true则表示在watch中声明的时候,就立即执行handler方法;值为false,则在数据发生变化的时候才执行handler

这样即可实现父组件动态传递对象参数给子组件,子组件实时更新数据。

初次之外:

watch监听普通类型的数据:

data() {  
    return {  
        testParam: 0      
    }  
},  
watch: {  
    testParam(newValue, oldValue) {  
        console.log(newValue)  
    }  
}  

watch监听数组类型的数据:

data() {  
    return {  
        testDatas: new Array(8).fill(0)     
    }  
},  
watch: {  
  testDatas: {  
    handler(newValue, oldValue) {  
      for (let i = 0; i < newValue.length; i++) {  
        if (oldValue[i] != newValue[i]) {  
          console.log(newValue)  

                                   this.testFun();//需要执行的方法
        }  
      }  
    },  
    deep: true  
  }  
}

 

亦可参考:https://blog.youkuaiyun.com/lbpro0412/article/details/86623611

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值