vue3.0组件监听异步数据,watch与reactive 的应用, watch与computed, 还有ref的使用

Posted 发奋图强_lee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue3.0组件监听异步数据,watch与reactive 的应用, watch与computed, 还有ref的使用相关的知识,希望对你有一定的参考价值。

错误的做法:

1,因为是异步数据,子组件在onMounted直接接收父组件传过来的异步数据肯定行不通

2,用watch监听数据,直接赋值是不行的,因为是异步数据,在初始化的时候渲染了一个空值,后来监听了父组件传过来的异步数据,之后直接赋值给reactive的响应式数据(相当于页面渲染完毕,再创建新的响应式数据),以至于页面不再渲染新的响应式数据

因为上面的原因,即使这样也无效果

正确的方式是:

1,用watch赋值组reactive里面的属性

 2, 用computed,返回的是一个响应式数据

 3,用ref 与watch结合也可以

export default 
  name: "itemPage",
  components: 
    Item,
    // NoData
  ,
  props: 
    setData: 
      type: Object,
      default: (): any => 
        return 
          subList: [],
          regList: [],
          rfdList: [],
          coupList: [],
        ;
      ,
    ,
  ,
  setup(props: any) 
    let data: any = reactive();

    watch(() => props.setData,(newVal) => 
        data.subList = newVal.subList;
        data.regList = newVal.regList;
        data.rfdList = newVal.rfdList;
        data.coupList = newVal.coupList;
      
    );

    return 
      data
    ;
  ,
;

以上是关于vue3.0组件监听异步数据,watch与reactive 的应用, watch与computed, 还有ref的使用的主要内容,如果未能解决你的问题,请参考以下文章

vue3.0组件监听异步数据,watch与reactive 的应用, watch与computed, 还有ref的使用

父组件传异步数据给子组件问题

Vue2 watch监听对象的属性值变化

Vue2 watch监听对象的属性值变化

vue 中的computed 和 watch 监听

vue学习记录---vue3.0学习