13 VUE学习:组件v-model
在Vue中,v-model
是一个双向绑定的指令,它可以在表单元素或者自定义组件上创建数据与视图的双向绑定。
以下是一个使用v-model
的基本示例:
<template>
<div>
<input v-model="message" placeholder="edit me">
<p>Message is: {{ message }}</p>
</div>
</template>
<script>
export default {
data() {
return {
message: ''
}
}
}
</script>
在这个例子中,input
元素使用v-model
与组件的data
属性message
建立了双向绑定。当输入框的值改变时,message
属性也会更新,同时如果message
属性的值发生变化,输入框中的内容也会更新以反映当前的值。
对于自定义组件,你可能需要在子组件中显式地触发一个input
事件,并且使用value
属性来创建双向绑定。
<template>
<div>
<custom-input v-model="message"></custom-input>
<p>Message is: {{ message }}</p>
</div>
</template>
<script>
import CustomInput from './CustomInput.vue';
export default {
components: {
CustomInput
},
data() {
return {
message: ''
}
}
}
</script>
在自定义组件中:
<template>
<input :value="value" @input="$emit('input', $event.target.value)">
</template>
<script>
export default {
props: ['value']
}
</script>
在自定义组件中,我们监听input
事件并通过$emit
方法发出一个新的input
事件,并将输入框的当前值作为参数传递。这样,父组件中的v-model
就可以正常工作了。
评论已关闭