vue3父组件通过ref调用子组件的方法,子组件是通过v-for动态渲染的

 

Index.vue:

<script setup>
import { ref, onMounted } from 'vue'
import Child from './Child.vue'
import './index.css'

const child = ref(null)
let arr = [1, 2, 3]

let refList = []

const handleRef = (el, index) => {
  console.log(el, index)
  el.handleGetValue()
  refList.push(el)
}

onMounted(() => {
  refList[1].handleGetValue()
})
</script>

<template>
  <div class="m-home-wrap">
    <Child v-for="item in arr" :key="item" :ref="(el) => handleRef(el, item)"></Child>
    <div class="m-home-demo"></div>
  </div>
</template>

<style></style>

Child.vue:

<template>
  <div>child</div>
</template>

<script lang="ts" setup>
import { defineExpose } from 'vue'
const handleGetValue = () => {
  console.log('子组件的方法')
}

defineExpose({
  handleGetValue
})
</script>

<style></style>

人工智能学习网站

https://chat.xutongbao.top

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐同保

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值