Skip to content

vue3 数据双向绑定

父组件

parent.vue

html
<template>
    <son v-model="parentValue" @onChange="onChange"></son>
</template>
<script setup lang="ts">
import { ref } from 'vue';
import son from './son.vue';
const parentValue = ref('');
function onChange(e:any) {
    console.log(e,'e');
    console.log(parentValue.value, 'parentValue');
}
</script>

子组件

html
<template>
    <div class="son-box">
        <input type="text" v-model="inputVal" @input="onInput">
        {{ inputVal  }}
    </div>
</template>

<script setup lang="ts">
import { ref } from 'vue';

const inputVal = ref('');
const emit = defineEmits(["update:modelValue", 'onChange'])
function onInput() {
    emit('update:modelValue', inputVal.value);
    emit('onChange', inputVal.value);
}
</script>

<style lang="scss" scoped>
.son-box{
    margin: 10px;
    padding: 10px;
}
</style>