亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VUE遞歸樹形怎么實現多級列表

發布時間:2022-07-15 13:39:31 來源:億速云 閱讀:194 作者:iii 欄目:開發技術

今天小編給大家分享一下VUE遞歸樹形怎么實現多級列表的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

什么是遞歸?

簡單來說就是在組件中內使用組件本身。

為什么要用遞歸?

如果出現很多下拉菜單,同級,分級數據,層級混雜,可以使用v-for的嵌套循環不就完事了。對,沒毛病這樣的話也可以做,但是如果數據又多加了【很多】級分類呢;使用v-for也能實現,但是代碼可能會比較雜或混亂!也不適合后期的維護,這個時候呢,我們就可以使用我們所說道的【遞歸組件 】了,使用遞歸組件,無論你的數據怎么增加我們都不用改動我們的代碼。

先看效果:

VUE遞歸樹形怎么實現多級列表

1、創建兩個文件

父組件tree.vue 子組件tree-detail

父組件代碼:

<template>
    <div id="tree">
        <treedetail
       :title="list.name"    //把值傳給子組件
       :list="list.children" //把值傳給子組件
        :num='0'
        >
        </treedetail>
    </div>
</template>
<script>

/**
 * 模擬一個樹形結構圖
 */
const list = {
  name: "電子產品",
  children: [
    {
      name: "電視",
      children: [
        {
          name: "philips",
          children: [
            { name: "philips-A" },
            { name: "philips-B" },
            { name: "philips-C" }
          ]
        },
        {
          name: "Tcl",
          children: [
            { name: "Mac Air" },
            { name: "Mac Pro" },
            {
              name: "ThinlPad",
              children: [
                {
                  name: "ThinlPad-A",
                  children: [
                    { name: "ThinlPad-A-a" },
                    { name: "ThinlPad-A-b" },
                    { name: "ThinlPad-A-c" }
                  ]
                },
                { name: "ThinlPad-B" },
                { name: "ThinlPad-C" },
                { name: "ThinlPad-D" }
              ]
            }
          ]
        },
        { name: "海興" }
      ]
    },
    {
      name: "電腦",
      children: [{ name: "acer" }, { name: "聯想" }, { name: "惠普" }]
    },
    {
      name: "可穿戴的設備",
      children: [
        {
          name: "手環",
          children: [
            { name: "華為B5手環" },
            { name: "小米手環" },
            { name: "iphone手環" }
          ]
        }
      ]
    }
  ]
};
import treedetail from '../tree/treedetail' 
export default{
    name:'tree',
    data(){
        return{list}
    },
    components:{treedetail}  //注冊子組件
}
</script>

子組件代碼:

<template>
<div id="treedetail" >
    <div class="treedetail" @click="btn()" :>  //btn是用來切換顯示隱藏
        <span>{{flag ? '-' :'+'}}</span> 
        <span>{{title}}</span> //接收到的標題
        </div>  
     <div  v-if="flag">  //這里加顯示隱藏也是必要的
        <treedetail  //treedetail這里的命名要跟父組件注冊子組件名稱一樣,不然無法顯示。DIV就無法顯示
        v-for="(item,index) in list" 
        :key="index"
        :title="item.name"
        :list='item.children'  //渲染列表下的列表數據
        :num='num + 1' //這里的作用應該是分清層級。
        ></treedetail>
    </div>   
  
    </div>
</template>
<script>
export default {
    name:'treedetail',
    props:{
        title:{
            type:String,
            default:'名稱'
        },
        list:{type:Array},
        num:{
            type:Number,
            default:0
        }
    },
    data(){
        return{
            flag:false
        }
    },
    methods:{
        btn(){
            this.flag=!this.flag
        }
    },
    computed:{
        indent(){
            return `transform: translate(${this.num*20}px)`; 
        
            
        }
    }

}
</script>

以上就是“VUE遞歸樹形怎么實現多級列表”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

纳雍县| 漳州市| 信阳市| 敦煌市| 自贡市| 凉山| 黎城县| 布拖县| 莱芜市| 成安县| 万盛区| 定结县| 江川县| 枝江市| 杭州市| 额尔古纳市| 哈尔滨市| 肥城市| 丰镇市| 洛浦县| 临泉县| 开鲁县| 衡阳县| 平乡县| 东莞市| 通渭县| 乌审旗| 松阳县| 吉安市| 琼海市| 凤冈县| 同心县| 皮山县| 昭苏县| 尼木县| 布尔津县| 图们市| 晋宁县| 浦县| 湖北省| 南城县|