账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue2 组件循环引用报错
    34
    0

    1.报错[Vue warn]: Unknown custom element: <tree-folder-contents> - did you register the component correctly? For recursive components, make sure to provide the "name" option.

    found in

    ---> <TreeFolder>

       <Root>
       ,

    我的代码
    <!DOCTYPE html>
    <html>
    <head>

    <meta charset="utf-8">
    <title>jjj</title>
    

    </head>
    <body>

    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
    <script src="https://unpkg.com/vuex"></script>
    <div id="example">
      <tree-folder :folder="folder"></tree-folder>
    </div>
    <script type="text/javascript">
    
    
    // 创建根实例
    new Vue({
    el: '#example',
    data(){
    return {
      folder:{
        name:'jjj',
        children:[
          {name:222},
          {name:3333,children:[
            {name:4444}
          ]}
        ]
      }
    }

    },
    components:{

    treeFolder:{
      template:`
      <p>
        <span>{{ folder.name }}</span>
        <tree-folder-contents :children="folder.children"/>
      </p>`,
      props:['folder']
    },
    treeFolderContents:{
      template:`
      <ul>
        <li v-for="child in children">
          <tree-folder v-if="child.children" :folder="child"/>
          <span v-else>{{ child.name }}</span>
        </li>
      </ul>`,
      props:['children']
    }

    }

    })
    </script>
    
    

    </body>
    </html>

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 捋妳裙 普通会员 1楼

      在 Vue 2 中,组件通常不会直接相互引用,而是通过依赖注入或属性绑定来实现。如果组件之间存在循环引用,Vue 2 将无法正确处理。这可能会导致错误,例如在某些情况下,Vue 2 无法重新渲染组件。

      以下是一些常见的原因,可能导致组件循环引用:

      1. 依赖注入或属性绑定错误:如果组件A依赖于组件B,或者组件B引用组件A,那么就会产生循环引用。确保组件A和组件B都正确地注入和绑定了依赖。

      2. 变量作用域问题:确保组件A和组件B的属性或依赖变量作用域是相同的。如果它们的属性或依赖变量在不同的作用域中,那么可能会导致循环引用。

      3. 父组件未正确注入或绑定子组件:如果父组件未正确注入或绑定子组件,那么子组件也可能会成为一个循环引用。

      解决这些问题的方法包括:

      1. 使用依赖注入或属性绑定:在创建组件时,确保它们都正确地注入和绑定了依赖。

      2. 确保变量作用域正确:如果它们的属性或依赖变量在不同的作用域中,那么需要确保它们的作用域是一致的。

      3. 使用生命周期钩子:在父组件的生命周期钩子中,正确地注入和绑定子组件。

      4. 使用插槽:如果子组件需要访问父组件的属性或依赖,可以使用插槽来实现。

      如果尝试了以上的方法仍然无法解决问题,那么可能需要检查代码,以找出是否存在其他可能导致循环引用的问题。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部