欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

VUE遞歸樹形實(shí)現(xiàn)多級(jí)列表

 更新時(shí)間:2022年07月15日 11:25:37   作者:賴賴賴先生  
這篇文章主要為大家詳細(xì)介紹了VUE遞歸樹形實(shí)現(xiàn)多級(jí)列表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了VUE遞歸樹形實(shí)現(xiàn)多級(jí)列表,供大家參考,具體內(nèi)容如下

什么是遞歸?

簡(jiǎn)單來(lái)說(shuō)就是在組件中內(nèi)使用組件本身。

為什么要用遞歸?

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

先看效果:

1、創(chuàng)建兩個(gè)文件

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

父組件代碼:

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

/**
?* 模擬一個(gè)樹形結(jié)構(gòu)圖
?*/
const list = {
? name: "電子產(chǎn)品",
? 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: "聯(lián)想" }, { name: "惠普" }]
? ? },
? ? {
? ? ? name: "可穿戴的設(shè)備",
? ? ? children: [
? ? ? ? {
? ? ? ? ? name: "手環(huán)",
? ? ? ? ? children: [
? ? ? ? ? ? { name: "華為B5手環(huán)" },
? ? ? ? ? ? { name: "小米手環(huán)" },
? ? ? ? ? ? { name: "iphone手環(huán)" }
? ? ? ? ? ]
? ? ? ? }
? ? ? ]
? ? }
? ]
};
import treedetail from '../tree/treedetail'?
export default{
? ? name:'tree',
? ? data(){
? ? ? ? return{list}
? ? },
? ? components:{treedetail} ?//注冊(cè)子組件
}
</script>

子組件代碼:

<template>
<div id="treedetail" >
? ? <div class="treedetail" @click="btn()" :style="indent"> ?//btn是用來(lái)切換顯示隱藏
? ? ? ? <span>{{flag ? '-' :'+'}}</span>?
? ? ? ? <span>{{title}}</span> //接收到的標(biāo)題
? ? ? ? </div> ?
? ? ?<div ?v-if="flag"> ?//這里加顯示隱藏也是必要的
? ? ? ? <treedetail ?//treedetail這里的命名要跟父組件注冊(cè)子組件名稱一樣,不然無(wú)法顯示。DIV就無(wú)法顯示
? ? ? ? v-for="(item,index) in list"?
? ? ? ? :key="index"
? ? ? ? :title="item.name"
? ? ? ? :list='item.children' ?//渲染列表下的列表數(shù)據(jù)
? ? ? ? :num='num + 1' //這里的作用應(yīng)該是分清層級(jí)。
? ? ? ? ></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>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在vue中使用echarts實(shí)現(xiàn)上浮與下鉆效果

    在vue中使用echarts實(shí)現(xiàn)上浮與下鉆效果

    這篇文章主要介紹了在vue中使用echarts實(shí)現(xiàn)上浮與下鉆效果,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • element表格翻頁(yè)第2頁(yè)從1開始編號(hào)(后端從0開始分頁(yè))

    element表格翻頁(yè)第2頁(yè)從1開始編號(hào)(后端從0開始分頁(yè))

    這篇文章主要介紹了element表格翻頁(yè)第2頁(yè)從1開始編號(hào)(后端從0開始分頁(yè)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Vue實(shí)現(xiàn)骨架屏的示例代碼

    Vue實(shí)現(xiàn)骨架屏的示例代碼

    骨架屏就是在頁(yè)面數(shù)據(jù)尚未加載前先給用戶展示出頁(yè)面的大致結(jié)構(gòu)。本文將利用Vue實(shí)現(xiàn)簡(jiǎn)單的骨架屏,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-03-03
  • vue頁(yè)面設(shè)置滾動(dòng)失敗的完美解決方案(scrollTop一直為0)

    vue頁(yè)面設(shè)置滾動(dòng)失敗的完美解決方案(scrollTop一直為0)

    這篇文章主要介紹了vue頁(yè)面設(shè)置滾動(dòng)失敗的解決方案(scrollTop一直為0),本文通過(guò)場(chǎng)景分析實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • vue 更改連接后臺(tái)的api示例

    vue 更改連接后臺(tái)的api示例

    今天小編就為大家分享一篇vue 更改連接后臺(tái)的api示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • vue.js指令v-model使用方法

    vue.js指令v-model使用方法

    這篇文章主要為大家詳細(xì)介紹了vue.js指令v-model的使用方法 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • vue如何使用mapbox對(duì)當(dāng)前行政區(qū)劃進(jìn)行反選遮罩

    vue如何使用mapbox對(duì)當(dāng)前行政區(qū)劃進(jìn)行反選遮罩

    這篇文章主要介紹了vue如何使用mapbox對(duì)當(dāng)前行政區(qū)劃進(jìn)行反選遮罩問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue面試中observable原理詳解

    Vue面試中observable原理詳解

    這篇文章主要為大家介紹了vue面試observable原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • vuex state中的數(shù)組變化監(jiān)聽實(shí)例

    vuex state中的數(shù)組變化監(jiān)聽實(shí)例

    今天小編就為大家分享一篇vuex state中的數(shù)組變化監(jiān)聽實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • vue路由教程之靜態(tài)路由

    vue路由教程之靜態(tài)路由

    這篇文章主要給大家介紹了關(guān)于vue路由教程之靜態(tài)路由的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評(píng)論