• 递归组件的使用


    递归组件的使用:     

    注意:使用递归组件时  组件里的 name 必须写

    .首先我们要知道,既然是递归组件,那么一定要有一个结束的条件,否则就会使用组件循环引用,最终出现 “max stack size exceeded”的错误,也就是栈溢出,那么我们可以用v-if=false作为递归条件的结束,当遇到v-if为false时,组件将不再进行渲染。

     

    1.首先我们获取到的数据格式如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    "categoryList": [{
            "title""成人票",
            "children": [{
              "title""成人三馆联票",
              "children": [{
                "title""成人三馆联票 - 某一连锁店销售",
                "children": [{
                  "title""第四级的三馆联票 - 某第四级的三馆销售"
                }]
              }]
            },{
              "title""成人五馆联票"
            }]
          }, {
            "title""学生票"
          }, {
            "title""儿童票"
          }, {
            "title""特惠票"
          }]

      可以清楚的看到   children  下面 又有title ; title里又包含了chileren……;像这种情况我们可以使用递归组件来实现页面的渲染

      递归组件的:组件自身调用自身组件

    2.父组件:把获取到的数据 传递给子组件

    1
    2
    3
    <div class="content">
          <detailList :list="list.categoryList"></detailList>
    </div>

    3.子组件(datailList):在子组件接收之后,进行数据的渲染

    template:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <template>
      <div>
        <div v-for="(item,index) in list" :key="index">
          {{item.title}}
          <div v-if="item.children"> <!--  中止条件-->
    <!--        组件内 调用自身-->
            <detailList :list="item.children"></detailList>
          </div>
      </div>
     
      </div>
    </template>

      当v-if设置为false时,递归组件将不会再进行渲染,设置为true时,继续渲染。

    1
    普及一下组件里name的用法:
    1
    我们在创建组件的时候,name 有时候不写, 也不会影响到我们组件的使用,但是在递归组件里,name必写;
    1
    name的用途:
    1
    1.组件的名称
    1
    2.递归组件
    1
    3.keep-alive指定缓存 清除指定组件时
    1
    <strong> </strong>
    1
    2
    3
    export default {
            name: "Home",
    }
  • 相关阅读:
    Android设计模式(三)--装饰模式
    kmp算法总结
    SDWebImage源代码解析(二)
    关于C++构造函数一二
    逆向随笔
    iOS中的crash防护(二)KVC造成的crash
    git-osc自己定义控件之:CircleImageView
    java中继承关系学习小结
    openwrt针对RT5350代码下载,配置和编译
    MySQL监控
  • 原文地址:https://www.cnblogs.com/kangshuai77/p/13628443.html
Copyright © 2020-2023  润新知