zoukankan      html  css  js  c++  java
  • 递归组件的小心得

    0. 递归与迭代

    1. 递归

    我调我自己,那就是递归。
    没有结束条件就是无穷地递归下去,会造成堆栈溢出。

    2. 迭代

    迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。

    3. 对比

    递归与迭代都是基于控制结构:迭代用重复结构,而递归用选择结构。

    举个例子吧:你要给某个小孩子买玩具。
    递归:你自己不太了解小孩子的需求,为了缩小范围,让你的儿子去给孙子挑选。儿子比你强点有限,但依然不太了解小孩子的需求。为了缩小范围,你又让你孙子去挑选。如此这般,直到找到合适的玩具。
    迭代:你挑了一件觉得不行,又挑了一件又不行。如此这般,直到找到合适的玩具。
    所以一句话:递归是自己调用自己,每次旨在缩小问题规模。迭代是自己执行很多次,每次旨在更接近目标。

    迭代是逐渐逼近,用新值覆盖旧值,直到满足条件后结束,不保存中间值,空间利用率高。
    递归是将一个问题分解为若干相对小一点的问题,遇到递归出口再原路返回,因此必须保存相关的中间值,这些中间值压入栈保存,问题规模较大时会占用大量内存。

    1. 递归组件

    父组件
    // RecursionCom.vue

    <template>
      <div>
        <child-component :count="count" />
      </div>
    </template>
    
    <script>
    import childComponent from "./childComponent.vue";
    export default {
      name: "recursionCom",
      components: {
        childComponent
      },
      data() {
        return {
          count: 1,
        };
      },
    };
    </script>
    
    

    子组件
    // childComponent.vue

    <template>
      <div class="child">
        <child-component :count="count + 1" v-if="count < 3"></child-component>
      </div>
    </template>
    
    <script>
    export default {
      name: "child-component",
      props: ["count"],
      mounted(){
        console.log('c',this.count);
      }
    };
    </script>
    

    控制台打印信息

    image

    人生到处知何似,应似飞鸿踏雪泥。
  • 相关阅读:
    POJ2126——Prime Path(BFS)
    POJ3020——Antenna Placement(二分图的最大匹配)
    POJ1019——Number Sequence(大数处理)
    CodeForces484A——Bits(贪心算法)
    CodeForces485B——Valuable Resources(水题)
    CodeForces485A——Factory(抽屉原理)
    HDU5092——Seam Carving(动态规划+回溯)(2014上海邀请赛重现)
    cache和buffer区别
    https页面证书验证、加密过程简介
    主要的开源镜像站点资源
  • 原文地址:https://www.cnblogs.com/lepanyou/p/15562828.html
Copyright © 2011-2022 走看看