• vue组件如何自己调用自己(组件递归)


    vue组件如何自己调用自己(组件递归)

    在做侧边栏导航动态加载时,需要用到vue的组件递归,最开始打算直接写函数递归来解决问题,结果没什么卵用,越写越复杂。直接上代码

    给组件name值

    1. <script>
    2. export default {
    3. name: "SideItem",
    4. }
    5. <script>

    直接在组件中调用即可

    1. <template>
    2. <div>
    3. <SideItem :tree="item"></SideItem>
    4. <div>
    5. <template>

    注意不要在组件内定义vue.components,否则会报错

    示例:

    父组件 ( 正常引入调用 )

    1. <template>
    2. <div>
    3. <moduleSun :chartData="item" v-for="(item,index) in chartData" :key="index" />
    4. </div>
    5. </template>
    6. <script>
    7. import moduleSun from '@/views/moduleSun'
    8. export default {
    9. components: { moduleSun },
    10. data() {
    11. return {
    12. chartData: [{
    13. nameCN: '111',
    14. nameEN: 'en111',
    15. remarks: '我是111',
    16. children: [{
    17. nameCN: '222',
    18. nameEN: 'en222',
    19. remarks: '我是222',
    20. children: [{
    21. nameCN: '222-111',
    22. nameEN: 'en222-111',
    23. remarks: '我是222-111',
    24. }],
    25. }, {
    26. nameCN: '333',
    27. nameEN: 'en333',
    28. remarks: '我是333',
    29. }],
    30. }],
    31. }
    32. },
    33. }
    34. </script>

    子组件 ( 组件中需定义name名称 )

    1. <template>
    2. <div class="chart-layout">
    3. <div class="chart-main">
    4. <div>{{chartData.nameCN}}</div>
    5. <div class="chart-en">{{chartData.nameEN}}</div>
    6. <div class="chart-remarks">{{chartData.remarks}}</div>
    7. </div>
    8. <moduleSun :chartData="item" v-for="(item,index) in chartData.children" :key="index" />
    9. </div>
    10. </template>
    11. <script>
    12. export default {
    13. name: 'moduleSun',
    14. props: {
    15. chartData: {
    16. type: Object,
    17. default: () => {
    18. return {}
    19. }
    20. },
    21. },
    22. }
    23. </script>
    24. <style lang="less" scoped>
    25. .chart-main {
    26. width: 100px;
    27. border: 1px solid #000;
    28. > div {
    29. margin-top: 5px;
    30. }
    31. }
    32. </style>

  • 相关阅读:
    HTTP 415错误状态码
    openEuler Meetup 广州站 精彩回顾
    2022年上半年软件设计师下午真题及答案解析
    PowerDesigner 设置
    SpringBoot+Vue实现前后端分离的财务管理系统
    Acwing.885 求组合数l
    IRQ中断服务函数
    如何翻译图片上的英文?建议收藏这三个方法
    Vue 简单快速入门
    PSO、GA与simulink模型联合仿真分析(超详细算法解析)
  • 原文地址:https://blog.csdn.net/m0_70547044/article/details/133811969