别再用@update:modelValue 和props进行父子之间传递双向绑定了 !
vue@3.4之后,只需要使用内置宏defineModel
即可实现父子组件数据的双向绑定!
https://cn.vuejs.org/guide/components/v-model.html
使用 Vue 3 中的 defineModel 可以替代传统的 @update 来实现父子组件之间的 v-model 双向绑定。 defineModel 使得绑定更加简洁,且具有更好的语义。
新版用法
<template>
<input v-model="modelValue" />
</template>
<script setup>
import { defineModel } from 'vue';
defineModel('modelValue');
</script>
以前的用法
字组件:
<template>
<input :value="modelValue" @input="updateInput" />
</template>
<script setup>
import { defineProps, defineEmits } from 'vue';
const props = defineProps({
modelValue: String,
});
const emit = defineEmits(['update:model-value']);
const updateInput = (event) => {
emit('update:model-value', event.target.value);
};
</script>