VUE + elementUIは、再帰的なコンポーネントを行います

さらに騒ぎがなければ、直接、新鮮なドライに

もちろん、あなたがブートストラップ、ルータ、要素-UI、VUE-axiosの進歩をインストールする必要があります

1.再帰的な要素では、参照は人のでどこにでもと、それが誰であるか、具体的かわからない、コードの偉大な神で、ここで作られます

<テンプレート> 
    の<div> 

    <テンプレート-のために= V 'MENUでメニューリスト'> 
        <! -あなたは、現在のサブメニューが表示されているエル・サブメニューを持っている場合は、再帰的なコンポーネントエルsubmentで呼び出す- > 
        <EL-サブメニュー
                V = -if 'menu.children.length> 0' 
                :=インデックス'menu.name' キー= "menu.id" 
        > 
            <テンプレートスロット= "タイトル"> 
                <I:クラス= "menu.icon"> </ I> 
                {} {} menu.name 
            </テンプレート> 
            < -ここに自分自身を呼び出すが鍵です- >!

            <menuTree:メニューリスト= 'menu.children'> </ menuTree> 

        </ EL-サブメニュー> 
        <!-何のサブメニューが存在しない場合は、現在の内容を表示する- > 
        <項目-EL-MENUの
                V-ELSE
                :インデックス= 'menu.url' キー= 'menu.id' 
        > 
            <I:クラス= "menu.icon"> </ I> 
            {{menu.name}} 
        </ EL-メニュー項目> 

    </テンプレート> 
    </ div> 
</テンプレート> 

<スクリプト> 
    輸出デフォルト{ 
        名: "MenuTree"、
        小道具:{ 
            メニューリスト:{ 
                タイプ:配列、
                必要な値:false 
            } 
        } 
    } 
</ SCRIPT> 

<スタイルスコープ> 

</スタイル>

2.サブアセンブリのメニュー(メニュー)


/テンプレート> <スクリプト> 
    輸入MenuTree "./MenuTree"から。
    輸出のデフォルト{



        名前: 'メニュー'、
        成分:{ 

            MenuTree、
        }、
        小道具:{ 
            メニューリスト:{ 
                型:Array、
                必要:偽
            } 
        } 
    } 
</ SCRIPT> 
<スタイル> 

    { 
        表示:インラインブロック。
        幅:100%; 
        オーバーフロー:隠されました; 
    } 
    .ELメニュー{ 
        ボーダー:なし。
        高さ:100%; 
        幅:100%重要;!
    } 
    アクティブ.is> .EL-submenu__title { 
        色:#重要なのf4f4f5;!
    } 

</スタイル>

引用された3.親コンポーネント(App.Vue)

<テンプレート> 
    <EL-容器> 
        <EL-ヘッダ> 
            XXXXXX 
        </ EL-ヘッダ> 
        <EL-容器> 
            <EL-脇> 
                <メニュー:メニューリスト= "メニューリスト"> </メニュー> 
            </ EL-脇> 
            <エル・メイン> 
                <ルータビュー> </ルータビュー> 
            </ EL-メイン> 
        </ EL-コンテナ> 
    </ EL-コンテナ> 
</テンプレート> 

<スクリプト> 
    インポートメニュー"./views/Menus"から; 

    輸出のデフォルト{ 
        名:「アプリ」は、
        コンポーネント:{ 
            メニュー、

                タイプ:配列、
                必須:偽
            } 
        }、
        {)(搭載
            this.axios.get( '/メニュー/リスト')
                .then(RESP => { 
                    this.menuList = resp.data.menuList; 
                })
        } 

    } 
</スクリプト> 

<スタイル> 
    .ELヘッダ{ 
        背景色:#0000AA。
        色:#FFFFFF; 
        行の高さ:60PX; 
        フォントサイズ:28px; 
    } 
    .ELアサイド{ 
        背景色:#e3e3e3。
        幅:200pxの重要;!
    } 

    本体の.elテーブルth.gutter {
        表示:テーブルセルの重要な;!
    } 
    体の.elテーブルcolgroup.gutter { 
        表示:テーブルセルの重要な;!
    } 

</スタイル>

4.まとめ

アセンブリの使用再帰メニューリストのために> - >メニューコンポーネントメニューリスト - 親要素メニューリスト:再帰的プロセスを与えるために最も重要な要素、親コンポーネントとサブアセンブリのコンポーネントは、共通の再帰的に小道具、伝統的な価値観を持っています

おすすめ

転載: www.cnblogs.com/theworld/p/12077418.html