vue中⽗⼦组件传值问题(深度监听)
vue中⽗⼦组件传值问题轨迹交叉理论
普通的⽗⼦组件通常都是在⼦组件中绑定某个属性,在⼦组件中⽤props接收,⼦组件通过$emit将值传递给⽗组件。⽗组件通过$emit传递的函数和值来得到⼦组件的值。
// ⽗组件中,⼦组件的写法
// id 是要传递到⼦组件的值
<subCompont @hideHandle="drawerHide" :id="id"></subCompont>
// ⼦组件接收从⽗组件传来的值
props:{// 或者简单写法 props:["id"]
id:{
type:[Number,String],
default:0
}
}
// ⼦组件中向⽗组件提交值
this.$emit('hideHandle',fal)
//watch监听值是否接收到传来的值,当接收到时执⾏某函数
watch:{
快递几号停运id(val){
<(val)// 当监听到传来的值得时候执⾏此函数
}
}
// ⽗组件接收从⼦组件传来的值
创业者的基本素质/
/ 上⾯的hiedHandle看到没有,$emit就是向这个绑定的属性传值的,drawerHide会接收传来的值
drawerHide(val){
车辆年检// val表⽰传来的值
console.log(val)
}
通常我们⽗⼦组件传值并不只是需要这个值,⽽是需要这个值得同时进⾏⼀些操作。我们⼀般通过watch监听传来的值,如果值传来了,将执⾏watch中的操作。
watch:{
'id':(val)=>{
<(val)
}
}
watch:{
id:(val)=>{
<(val)
}
}
watch:{
id(val){
<(val)
}
}秋色满园
但是我就⽐较倒霉了,我遇到了监听不到的情况,因此遇到的深度监听
着落
watch:{
id:{
deep:true,// 深度监听
handler(val){// 监听到后执⾏handler⽅法
<(val)
}
}
}
风湿心脏病这样确实解决了⼀部分问题,但是更倒霉的是我还遇到了,第⼀次监听不到的情况
watch:{
id:{
旅行英语作文
deep:true,// 深度监听
immediate:true,// 监听到后,⽴即执⾏ handler⽅法
handler(val){
<(val)
}
}
}
这样就基本覆盖了所有⽗⼦组件传值的时候watch监听不到的情况了