vue 組件循環(huán)引用

Vue.component 全局注冊(cè)組件時(shí),組件循環(huán)引用可以解開。

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
</head>

<body>

    <div id="div">

        <!--用prop 獲取實(shí)例data數(shù)據(jù)-->

        <father-comp :kkk="folder"></father-comp>

    </div>
    <script>
        Vue.component("child-comp", {
            template: `
                <p>
                    <span>{{aaa.name}}</span>
                    <father-comp :kkk="aaa.ch"/>
                </p>`,
            props: ['aaa']
        })

        Vue.component("father-comp", {
            template: `     
            <ul>         
            <li v-for="child in kkk">           
            <child-comp v-if="child.ch" :aaa="child"></child-comp>          
            <span v-else>{{child.name}}</span>          
            </li>       
            </ul>
            `,
            props: ['kkk']
        })
        new Vue({
            el: "#div",
            data: {
                folder: [{
                    name: 1
                }, {
                    name: 2,
                    ch: [{
                        name: "2-1",
                        ch: [{
                            name: "2-1-1"
                        }, {
                            name: "2-1-2"
                        }]
                    }]
                }]
            }
        })
    </script>

</body>

</html>

當(dāng)組件不是全局注冊(cè)的時(shí)候 我們使用遞歸組件需要經(jīng)過處理才使用
解決方案如下

方案一
beforeCreate: function () {
this.$options.components.TreeFolderContents = require('./tree-folder-contents.vue').default
}

方案二
推薦使用 webpack的異步組件 通過 import 引入如下
異步組件的注冊(cè)是一個(gè)箭頭函數(shù)
components: {
TreeFolderContents: () => import('./tree-folder-contents.vue')
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 組件(Component)是Vue.js最核心的功能,也是整個(gè)架構(gòu)設(shè)計(jì)最精彩的地方,當(dāng)然也是最難掌握的。...
    六個(gè)周閱讀 5,772評(píng)論 0 32
  • 問題的背景是菜單不能寫死, 菜單要做成有權(quán)限的。 登陸完成之后, 獲取權(quán)限列表, 根據(jù)權(quán)限列表的返回加載組件, 首...
    康樂芳華閱讀 2,528評(píng)論 0 1
  • 組件簡(jiǎn)介 組件系統(tǒng)是Vue.js其中一個(gè)重要的概念,它提供了一種抽象,讓我們可以使用獨(dú)立可復(fù)用的小組件來構(gòu)建大型應(yīng)...
    前端一菜鳥閱讀 942評(píng)論 0 16
  • 什么是組件? 組件 (Component) 是 Vue.js 最強(qiáng)大的功能之一。組件可以擴(kuò)展 HTML 元素,封裝...
    youins閱讀 9,708評(píng)論 0 13
  • 本文章是我最近在公司的一場(chǎng)內(nèi)部分享的內(nèi)容。我有個(gè)習(xí)慣就是每次分享都會(huì)先將要分享的內(nèi)容寫成文章。所以這個(gè)文集也是用來...
    Awey閱讀 9,577評(píng)論 4 67

友情鏈接更多精彩內(nèi)容