vue基础自定义组件数值传递

父组件:

<template>
  <div class="md:hero mx-auto p-4">
        <inputDiy v-model:value="inputValue" @submit="handleSubmit" />
        <p style="color: #fff;">当前输入的内容:{{ inputValue }}</p>
  </div>
</template>

<script setup>
import { ref, watch } from 'vue';
import inputDiy from "../components/inputDiy.vue"

const inputValue = ref('000');

watch(inputValue,(now)=>{
  console.log("a父组件==>",now)
})

const handleSubmit = (value) => {
  console.log('提交的内容:', value);
};
</script>


子组件:

<template>
  <div>
    <a-input  v-model:value="inputValue" @change="handleInput" placeholder="请输入内容"/>
    <a-button @click="handleClick">提交</a-button>
  </div>
</template>

<script setup>
import { defineProps, defineEmits ,ref, watch} from 'vue';

const props = defineProps({
  value: {
    type: String,
    default: ''
  }
});

const inputValue=ref(props.value);

const emit = defineEmits(['update:value', 'submit']);

const handleInput = (event) => {
  emit('update:value', event.target.value);
  console.log("a子组件=111=>",props.value)
};

watch(()=>props.value,()=>{
  console.log("a子组件=222=>",props.value)
})

const handleClick = () => {
  emit('submit', props.value);
};

</script>

<style scoped>
input {
  margin-right: 10px;
  padding: 5px;
  font-size: 14px;
}

button {
  color: #fff;
  padding: 5px 10px;
  font-size: 14px;
  cursor: pointer;
}
</style>

父=>子 通过peops
子=>父 通过emit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值