以前一直不知道watch如何应用到具体场景中,这几天经过项目,终于理清来它的具体用法。当祖先组件触发执行方法,引起数据变化时候都可以让子组件监控到接收到的数据的变化
<component1 @click="changeVal">
<component2 :val="val" />
<compment1>
<script >
export default {
data() {
return{
val:"test"
}
},
methods: {
changeVal () {
this.val="test2"
}
}
}
</script>
<component2 >
<component3 :val="val" />
<compment2>
<script >
export default {
props: {
val: {
type: String,
default: ' '
}
}
}
</script>
<component3 />
<script >
export default {
props: {
val: {
type: String,
default: ' '
}
},
watch: {
val:(newval){
console.log(val) //val=test2
//执行其他方法
}
}
methods: {
clickHandler (args) {
this.$emit('clickHandler1', args) //args要传的参数
}
}
}
</script>
通过props属性把数据往子组件中传递,然后下面的子组件根据watch的监听,根据变化执行相应的方法