<!-- CustomInput.vue -->
<template>
<!-- 直接绑定计算属性,无需手动监听事件 -->
<input v-model="internalValue" />
</template>
<script>
export default {
props: ['modelValue'],
emits: ['update:modelValue'],
computed: {
internalValue: {
get() {
return this.modelValue; // 读取时返回 prop
},
set(value) {
this.$emit('update:modelValue', value); // 修改时触发事件
}
}
}
}
</script> 在子组件中不要直接修改父组件传递的props,而是将其传递给父组件进行修改。