vue 父子组件传值

父组件

父组件跟vue2.0没有变化,通过 :childName="childName",传值给子组件;通过@noticeParent="noticeParent" 函数接收子组件值,参数value即为子组件穿过来的值

<template>
    <h3>父组件</h3>
    <p>响应式:{{data.name}}</p>
    <p>非响应式:{{name}}{{age}}</p>
    <propsChild :childName="childName" @noticeParent="noticeParent"></propsChild>
</template>
<script setup lang="ts">
    import {reactive, toRefs} from 'vue'
    import propsChild from './propsChild.vue'

    const data= reactive({
        name:'父',
        age:12
    })
    let name = '父'
    let age = 10;
    let childName = '传给子组件的值'
    const noticeParent=(value:string)=>{
        data.name = value;
        name = '子改父';
        age = 12;
    }
</script>
<style lang="scss">

</style>

子组件

子组件是通过defineProps接收父组件值,通过defineEmits向父组件传递值

<template>
    <h4>子组件</h4>
    <p>{{childName}}</p>
    <button @click="noticeParent">传值父组件</button>
</template>
<script setup lang="ts">
import { onMounted } from 'vue';
const emit = defineEmits({
    noticeParent:null
})
const props=defineProps<{
    childName: string
}>()
const parentValue = '反馈都组件的值'
const noticeParent=()=>{
    emit('noticeParent',parentValue)
}
onMounted(()=>{
    console.log(props)
})
</script>
<style lang="scss">

</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值