modelValue
modelValue
是Vue.js 3.x中的一个重要概念,用于实现组件的双向数据绑定。当在父组件中使用v-model
指令绑定一个子组件时,子组件需要声明一个modelValue
属性来接收这个绑定值。同时,子组件还需要通过$emit
方法触发一个名为update:modelValue
的事件,来通知父组件绑定值的变化。
以下是一个简单的示例,展示了如何在子组件中使用modelValue
来实现双向数据绑定:
<template> <div> <input :value="modelValue" @input="$emit('update:modelValue', $event.target.value)" /> </div>
</template> <script>
export default { props: { modelValue: { type: String, default: '' } }
}
</script>
在这个示例中,子组件接收了一个名为modelValue
的属性,并将其绑定到一个输入框的value
属性上。当输入框的值发生变化时,子组件通过$emit
方法触发一个update:modelValue
事件,并将新的值作为参数传递给父组件。这样,父组件就可以实时地获取到子组件中输入框的值,实现了双向数据绑定。
需要注意的是,modelValue
并不是Vue.js的官方API,而是由开发者自定义的一个属性名。但是,由于它在实现双向数据绑定时非常常见且重要,因此被广泛地采用和接受。同时,Vue.js也提供了一些内置的机制来简化双向数据绑定的实现,如使用.sync
修饰符等。