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等等。
}

浙公网安备 33010602011771号