vue不适用watch监听,还能使用什么吗?

问题1  vue不使用监听,使用什么可以在组件数据变化时,触发另一个组件的内部方法

 

答案 :通过dom

父组件:

使用    <Child  ref="chidDom" :params="paramsData">   

    <button  @click="goChild">父组件触发</button>

 

    method:{

    goChild(){

      this.$refs.childDom.getParamsData()

    }

     }

子组件:   <template> <div>我是子组件 </div> <template>

    props:{

      params:{

        type:Object,

        default:null

      }

    },

    method:{

      getParamsData(){

        console.log('父组件数据',this.params)

    }

}

扩展:常见报错,点击按钮触发时,报子组件内部方法,读取不到,

原因: 组件渲染滞后,组件还没渲染,当然调取不到组件内部方法

修改: 

goChild(){

     setTimeout(()=>{

      this.$refs.childDom.getParamsData()

      },200)  //保证延时后,渲染完成,能正常获取 到组件方法,依据渲染时长,改为自己需要的时间,200,300,500,1000等等。

    }

posted @ 2022-02-22 10:39  天堂花草  阅读(159)  评论(0)    收藏  举报