vue3中v-model的详细使用
在Vue 3中,v-model
是一个指令,它创建了一个双向绑定,它可以用在表单类元素(如input, textarea, select)以及组件上。
在表单类元素上使用v-model
时,它会根据表单元素类型自动获取正确的方法来更新数据。例如,对于输入框(input),它会在输入时更新数据,对于复选框(checkbox),它会在点击时更新数据。
在组件上使用v-model
时,默认情况下它会使用modelValue
作为 prop 和update:modelValue
作为事件来实现双向绑定。我们可以通过使用v-model
来简化这个过程,使其看起来更像普通的表单绑定。
以下是一些示例代码:
在表单元素上使用v-model:
<template>
<input v-model="message" />
</template>
<script setup>
import { ref } from 'vue'
const message = ref('')
</script>
在组件上使用v-model:
假设我们有一个自定义组件MyComponent.vue
:
<!-- MyComponent.vue -->
<template>
<input :value="modelValue" @input="$emit('update:modelValue', $event.target.value)">
</template>
<script>
export default {
props: {
modelValue: String,
},
emits: ['update:modelValue'],
}
</script>
然后在父组件中使用这个组件并且使用v-model
:
<template>
<MyComponent v-model="message" />
</template>
<script setup>
import { ref } from 'vue'
import MyComponent from './MyComponent.vue'
const message = ref('')
</script>
在这个例子中,MyComponent
需要接受一个modelValue
prop,并且在输入框的值发生变化时发出一个update:modelValue
事件。父组件中的message
变量将与MyComponent
的输入值保持同步。
评论已关闭