• 递归生成菜单


    一:递归的概念

    递归,在数学与计算机科学中,是指在方法的定义中使用方法自身。也就是说,递归算法是一种直接或者间接调用自身方法的算法。简言之:在定义自身的同时又出现自身的直接或间接调用。

    注意:递归必须要有一个退出的条件!

    递归算法解决问题的特点: 

    • 递归就是方法里调用自身
    • 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
    • 递归算法解题通常显得很简洁,但递归算法解题的运行效率较低
    • 在递归调用的过程中,系统为每一层的返回点、局部变量等开辟了栈来存储。递归次数过多容易造成栈溢出等,所以一般不提倡使用递归算法设计程序。

    在做递归算法的时候,一定要把握住出口,也就是做递归算法必须要有一个明确的递归结束条件。这一点是非常重要的。其实这个出口是非常好理解的,就是一个条件,当满足了这个条件的时候我们就不再递归了。

     二:实际项目运用

    在项目中可以使用到递归来完成一些需要多次调用自身的设计

    1.在设计菜单时可以使用到递归来解决

    如以下情况

    设计一个侧边菜单,需要分为一级,二级,三级等菜单,此时多级菜单需要不断的调用自身的子菜单来分下一级菜单。

    代码如下

     在设计多级菜单的时候,我们可以用递归的方法来解决。

    需要将整个template设计为一个

    组件来进行

    代码如下

    1. //设计多级菜单
    2. :index="item.path"
    3. v-if="item.children && item.children.length > 1"
    4. >
    5. <template #title>
    6. <span>{{ item.meta.title }}span>
    7. template>
    8. <Menu :menuList="item.children">Menu>

    其中

    组件就是在不断调用自身来解决多级菜单的问题

  • 相关阅读:
    【Dart】004-流程控制
    2023首届中国水果互联网上海论坛成功举办!
    简单聊聊 Kafka
    【Redis】list列表
    【MATLAB】 03 变量与数据访问
    vue3 element plus表格导出为excel自定义表头
    Libevent库的学习
    ERROR Error: [copy-webpack-plugin] patterns must be an array
    【笔记】神经网络中的注意力机制
    二维数组转化为普通数组
  • 原文地址:https://blog.csdn.net/weixin_63267832/article/details/133211176