父组件:
<template>
<XtxCheckbox v-model="Allchecked">同意{{ Allchecked }}</XtxCheckbox>
</template>
<script>
import { ref } from '@vue/reactivity'
export default {
name: 'SubCategory',
setup() {
const Allchecked = ref(false)
return {
Allchecked
}
}
}
</script>
子组件:
<script>
// import { ref } from 'vue'
import { useVModel } from '@vueuse/core'
export default {
name: 'XtxCheckbox',
// -- 双向数据绑定--//
// 1.使用props接收父组件中的modelValue
props: {
modelValue: {
type: Boolean,
default: false
}
},
setup(props, { emit }) {
// 2.使用useVModel包装modelValue,此时checked.value就是modelValue
// 参数:useVModel(props, 'modelValue', emit)
const checked = useVModel(props, 'modelValue', emit)
// 3.使用checked.value="新值",触发emit('update:moduleValue',"新值")
const changeChecked = () => {
checked.value = !checked.value
}
return {
checked,
changeChecked
}
}
}
</script>