vue setup两种方式中的直接从父组件调用子组件中的函数和数据的方法,使用ref方式

文章展示了在Vue中如何通过ref属性实现父子组件间的通信,包括在子组件中定义可被父组件调用的函数,并通过`defineExpose`或`setup`返回。在父组件中,通过ref引用调用子组件的方法并获取其状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、直接上代码,子组件名为conform.vue,代码内容如下:

<template>
  <br/><span>{{ref_validate}}</span>
</template>

<script setup>
import { ref } from 'vue'
const ref_validate = ref('验证ref在组建上,获取子组件中的函数')
const test = (args)=>{
  console.log(args)
  ref_validate.value = args['success']
}

// 这种方式要把想要被父组件调用的内容导出去
defineExpose({ ref_validate, test })
</script>

<!--方式2-->
<!--<script >-->
<!--import { ref } from 'vue'-->
<!--export default {-->
<!--  name: 'conform',-->
<!--  setup(){-->
<!--    const ref_validate = ref('验证ref在组建上,获取子组件中的函数')-->
<!--    const test = (args)=>{-->
<!--      console.log(args)-->
<!--      ref_validate.value = args['success']-->
<!--    }-->
<!--    return {ref_validate, test}-->
<!--  }-->
<!--}-->
<!--</script>-->
<style scoped lang="less">
</style>

2、app.vue中的内容:

<template>
  <button  @click="validate_ref">主要按钮</button>
  <conform ref="validate" ></conform>

</template>

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

const validate = ref(null)
const validate_ref = ()=>{
    validate.value?.test({success:'验证成功了'});
    console.log(validate.value?.ref_validate);
}

</script>
<style scoped lang="less">
</style>

3、结果:

在这里插入图片描述

点击button后

在这里插入图片描述

注意ref的另一种用法:请点击参看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值