Vue3.js自定义组件 v-model详解
更新时间:2023年10月19日 14:34:56 作者:彭世瑜
在Vue3 中,v-model是用于创建双向数据绑定的指令,通常,我们使用该指令将任何 HTML 表单元素与一个变量绑定以收集输入值,本文给大家介绍Vue3.js自定义组件 v-model,感兴趣的朋友一起看看吧
Vue3的自定义v-model和vue2稍有不同
文档
https://cn.vuejs.org/guide/components/v-model.html
原生组件
<input v-model="searchText" />
等价于
<input :value="searchText" @input="searchText = $event.target.value" />
自定义组件
<CustomInput v-model="searchText" />
等价于
<CustomInput :model-value="searchText" @update:model-value="newValue => searchText = newValue" />
CustomInput实现代码1
<!-- CustomInput.vue -->
<script>
export default {
props: ['modelValue'],
emits: ['update:modelValue']
}
</script>
<template>
<input
:value="modelValue"
@input="$emit('update:modelValue', $event.target.value)"
/>
</template>CustomInput实现代码2
<!-- CustomInput.vue -->
<script>
export default {
props: ['modelValue'],
emits: ['update:modelValue'],
computed: {
value: {
get() {
return this.modelValue
},
set(value) {
this.$emit('update:modelValue', value)
}
}
}
}
</script>
<template>
<input v-model="value" />
</template>v-model 的参数
默认使用的是modelValue, 可以自定义参数名
<MyComponent v-model:title="bookTitle" />
组件实现
<!-- MyComponent.vue -->
<script>
export default {
props: ['title'],
emits: ['update:title']
}
</script>
<template>
<input
type="text"
:value="title"
@input="$emit('update:title', $event.target.value)"
/>
</template>到此这篇关于Vue3.js自定义组件 v-model的文章就介绍到这了,更多相关Vue3 v-model内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
axios解决高并发的方法:axios.all()与axios.spread()的操作
这篇文章主要介绍了axios解决高并发的方法:axios.all()与axios.spread()的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-11-11
Vue中金额、日期格式化插件@formatjs/intl的使用及说明
这篇文章主要介绍了Vue中金额、日期格式化插件@formatjs/intl的使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-02-02


最新评论