其他分享
首页 > 其他分享> > vue 刷新子组件 出现闪屏的问题

vue 刷新子组件 出现闪屏的问题

作者:互联网

项目中 在做表单的开发时 新增或修改需要对表格进行初始化 ,也就是置空表单 有很多方法 ,我是在子组件上加上key 每次打开子组件 key的值都会不一样 这就出现一个问题 每次打开子组件 数据置空是没问题了 总是会闪一下。就好请求数据 还没请求成功页面出现 html代码 一开始使用v-clock 没用!..后来查阅了一番 我一开始将key的赋值放在了 点击事件 也就是点击按钮弹出子组件这个方法中。。需要放在子组件发射的方法中 也就是关闭子组件时,我是在弹出子组件时。 下面调整后的
子组件:

<template>
  <div class="">
    <el-drawer
      title=""
      :visible.sync="drawer_costEndDetail"
      size="40%"
    ></el-drawer>
  </div>
</template>

<script>
export default {
  components: {},
  props: {
    showCostEndDetail: Boolean,
    costEndData: {
      type: Object,
      default: function () {
        return {};
      },
    },
  },
  data() {
    return {
      endForm: {},
    };
  },
  watch: {
    formData: {
      immediate: true,
      handler(newValue, oldValue) {
        this.endForm = Object.assign({}, newValue);
      },
      deep: true,
    },
  },
  computed: {
   // 这里是处理 打开弹框 关闭后子组件的值无法传给父组件 props传值单向数据流的问题
    drawer_costEndDetail: {  
      get() {
        return this.showCostEndDetail;
      },
      set(v) {
        this.$emit("showEndDetailEvent", v);// 发送事件 给父组件
      },
    },
  },
  methods: {},
};
</script>
<style lang='scss' scoped>
</style>

父组件:

    <cost-end-detail
      :showCostEndDetail="showCostEndDetail"
      @showEndDetailEvent="showEndDetailEvent"
      :key="key"
    ></cost-end-detail>
    showEndDetailEvent(v) {  // 父组件接收的方法
      this.showCostEndDetail= v;
      this.key = new Date().getTime();
    },

标签:showCostEndDetail,vue,return,Object,showEndDetailEvent,闪屏,key,组件
来源: https://blog.csdn.net/pengboran/article/details/109987043