vue 父子组件传值缓存解决方案

在平时开发中,经常会出现例如(tab切换组件的情况)切换的页面均为子组件,会出现父组件传值缓存的情况--------第一次进入页面数据不变

原因:因为进入页面请求的接口是异步请求,数据没有及时更新

解决方法:

父组件:

组件传值

<Option :content="permissions" v-if="activeName == 0" :Mathrand="Mathrand"></Option>

return:

return {
      Mathrand:100
} //声明一个随机数变量

javascript

    AccessTo(num) {
      this.$ajax.get(this.uri('*********')+num).then(res => {
        this.permissions = res.data.data;
        this.Mathrand = Math.random()  //接口请求完毕以后重新为随机数赋值
      }).catch(err => {
        this.loading = false;
      })
    },

子组件:

接受参数

props: {
    content: {
      type: Object,
      default: () => {}
    },
    Mathrand: {
      type: Number
    }
  }, //接受传递的参数

监听随机数,再做相应操作

  watch: {
    'Mathrand': function (val, nv) {
      this.ReturnsParameter = this.content.template
      const {
        allModerator,
        nowModerator,
        member,
        level,
        assignModeratorId,
        assignMemberId
      } = this.content.template
    }
  },

此方法主要是每次切换组件时,刷新获取父组件传递的新参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值