v-model
是 Vue.js 框架中的一个指令,用于实现双向数据绑定。它可以在表单元素(如 input、textarea、select 等)和 Vue 实例的数据之间创建双向绑定。当你在输入框中输入内容时,绑定的数据会自动更新;反之,当更新绑定的数据时,输入框中的内容也会相应地更新。
<input v-model="message">
<textarea v-model="message"></textarea>
<input type="radio" value="male" v-model="gender">
<input type="checkbox" value="apple" v="fruits">
<select v-model="selected">...</select>
v-model
时,输入框的值没有更新?原因:
data
函数中声明。v-model
,需要确保组件正确地使用了 props
和 emits
。解决方法:
// 确保数据是响应式的
export default {
data() {
return {
message: ''
};
}
};
<!-- 在模板中使用 v-model -->
<input v-model="message">
v-model
?解决方法:
// 自定义组件
export default {
props: ['modelValue'], // 使用 modelValue 作为 prop 名称
emits: ['update:modelValue'], // 发射 update:modelValue 事件
watch: {
modelValue(newValue) {
this.value = newValue;
},
value(newValue) {
this.$emit('update:modelValue', newValue);
}
},
data() {
return {
value: this.modelValue
};
}
};
<!-- 在父组件中使用自定义组件 -->
<custom-input v-model="customValue"></custom-input>
通过以上信息,你应该能够更好地理解和使用 v-model
进行双向数据绑定。