如题所示
子组件:
<input type="checkbox" v-model="checked" @click="setRember">
props:{
checked: {
type: Boolean,
default: false
},
}
methods:{
setRember() {
this.$emit('setRember', this.checked);
}
}
父组件
<FormInput
:checked="checkStateData"
@setRember="changeCheckBox"
>
data(){
return(
checkStateData:false,
)
}
methods:{
changeCheckBox(val){
//axios请求
//请求成功则控制子组件FormInput的checkbox选中
},
}
现在需要再父组件的changeCheckBox事件中执行异步请求,请求成功则控制子组件checkbox选中,否则不选中。这样应该如何操作呢?
下面的例子用了
button
点击操作来模拟其他操作,可替换成别的,可以满足这样几个需求:checkbox
选中状态子组件:
父组件:
如果只是希望页面进入的时候初始化子组件的默认状态,那就没有必要同步更新父组件的状态了。另外也可以用
vuex
来做这一套状态管理,这样不管场景多复杂,组件嵌套多少层,只需要注意子组件变量与其他组件值更新后的对应关系。