满口金牙 2022-06-04 09:01 采纳率: 92.3%
浏览 183
已结题

Vue3 组件递归中,递归下 调用 父父 组件的方法,请教

Vue3 组件递归,
一个目录树的组件:

一、父组件中 循环 TreeItme 组件

父组件中:
 <TreeItme v-for="item in menuCustomData" :key='item.key' :item="item" @methodA='methodA' />  / 给子组件绑定方法A

二、TreeItme 子组件中 递归 循环自身

<template>
    // 其它代码略
    const emit = defineEmits(['methodA ',])
    emit('methodA ')  // 调用父组件的方法, 第一层可以调用到, 但是下面的代码没法调用到 这个方法
    <TreeItem style="position: relative; left:67px;" v-if="itemVisible" v-for='(v,i) in item.children' :key='i' :item='v'/> // 递归 自已, 这里无法调用 methodA
</template>

  • 写回答

4条回答 默认 最新

  • iMingzhen 2022-06-04 14:38
    关注

    这种涉及到多层级的组件通信,建议使用vue的provideinject
    从上层组件提供函数和数据给所有下层组件,下层接收使用

    img

    详细使用方式请查阅文档~
    https://v3.cn.vuejs.org/guide/component-provide-inject.html

    如有帮助请采纳回答谢谢~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • Heerey525 前端领域新星创作者 2022-06-04 10:53
    关注

    常规做法时下面这种

    <TreeItme v-for="item in menuCustomData" :key='item.key' :item="item" @methodA='methodA' >
        <TreeItem style="position: relative; left:67px;" v-if="itemVisible" v-for='(v,i) in item.children' :key='i' :item='v' @methodA='methodA' />
    </TreeItme>
    
    评论
  • 关注

    这种涉及到多层级的组件通信,建议使用vue的provide和inject,或者一级一级向上发起事件

    评论
  • 有问必答小助手 2022-06-08 15:45
    关注
    您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
    PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月16日
  • 已采纳回答 6月8日
  • 修改了问题 6月4日
  • 修改了问题 6月4日
  • 展开全部

悬赏问题

  • ¥15 MAX98357A 和stm32通讯后声音异常
  • ¥15 自学计算机组成原理前要学哪些书
  • ¥15 如何仅使用递归法改变链表顺序
  • ¥30 频率与占空比均可调的方波发生器
  • ¥15 VB6.0中PICTUREBOX加载本地图片无法显示
  • ¥100 关于游戏app session获取的问题
  • ¥15 爬虫程序爬取TTGChina网站文章代码
  • ¥35 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。
  • ¥15 如何用下图方法在AMESim中搭建离心泵模型
  • ¥15 C#连接服务器,请求时报Ssl/Tsl未能建立安全通道