自定义v-model在vue3不支持吗?我写了好像没效果
来源:2-8 vue如何自己实现v-model
qq_慕用6596887
2021-04-13 20:06:55
在Vue3下写的
Child组件:
<template>
<div>
<input type="text" :value="text" @input="$emit('change', $event.target.value)" />
</div>
</template>
<script>
// @ is an alias to /src
export default {
name: 'Child',
model: {
prop: 'text',
event: 'change'
},
props: {
text: String,
default () {
return ''
}
}
}
</script>
Parent组件:
<template>
<div>
<p>{{name}}</p>
<Child v-model="name" />
</div>
</template>
<script>
import Child from './Child'
export default {
name: 'Parent',
components: { Child },
data () {
return { name: 'Parent' }
}
}
</script>
<style lang="scss" scoped>
</style>
1回答
好帮手慕慕子
2021-04-14
同学你好,vue3支持自定义v-model,不过语法书写有些变化,具体可以参考如下解析:
1、触发事件名需要以update:modeValue这种格式书写,其中update:是固定格式,后面的modelValue是value绑定的值。即:
2、event属性值也需要修改,保持一致
3、父组件中的代码也需要调整,v-model后面需要添加子组件中value绑定值text。如下图所示:
经过上述修改后,效果如下:
祝学习愉快~
相似问题