【VUE】父组件点击后子组件页面内容不更新 :key=“timer“

当父组件点击后子组件未响应数据更新时,可以尝试在父组件中给子组件添加key属性,并绑定一个时间戳。每次打开子组件时,更新时间戳以触发子组件的重新渲染。这种方法利用了Vue的key机制,当key值改变时,组件会重新创建,确保组件状态与最新数据同步。
摘要由CSDN通过智能技术生成

 :父组件点击后,子组件页面内容不更新(参数已经传递,子组件并没有对新参数进行调用)

解决方法:

在父组件页面中:

给引入的 需要更新的子组件中添加:

    <business-form-dialog-template @submit="receiveOrder">
      <order-apply-form :key="timer"/> //添加key
    </business-form-dialog-template>

父组件的点击方法中添加:

    handleAddOrder() {
        this.timer = new Date().getTime();    //添加此方法即可
    }

 父组件data中添加:

timer: ''

这样即可解决:在父组件中打开子组件显示,子组件进行页面的created、mounted后,隐藏子组件,再次使子组件显示时,子组件的数据并不会更新,只是简单的隐藏和显示。

原理是:

有时候我们需要这个组件每次都重新生成dom 元素,每次都执行created() 函数

这时候就用到了vue中的key 属性。
key属性和react 的key属性基本上一样
key 属性不是给开发人员用的,而是用来 给vue 元素渲染的时候用的,每次渲染的时候会去拿这个key 值做对比,如果这一次的key 值和上一次的key值是不一样的才会重新渲染dom 元素,否则保持上一次的元素状态。
根据这个原理我们可以给key 直接绑定一个 时间戳

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值