vue 组件循环引用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue 组件循环引用相关的知识,希望对你有一定的参考价值。

参考技术A Vue.component 全局注册组件时,组件循环引用可以解开。

当组件不是全局注册的时候 我们使用递归组件需要经过处理才使用
解决方案如下

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


方案二
推荐使用 webpack的异步组件 通过 import 引入如下
异步组件的注册是一个箭头函数
components:
TreeFolderContents: () => import('./tree-folder-contents.vue')

Vue组件之无限级目录树构建

渐渐,了解Vue也有一个月了,最近遇上个无限级目录树的小功能,为了能多学习避免自己操作dom或是网上下插件,下决心用Vue来解决当下问题,毕竟毛爷爷讲过,实践出真知,本次主要运用了组件之间的相互循环引用,然后就是循环组件与父组件之间的通信,

源数据格式采用了毗邻结构转为多维数组的形式,没办法,我也暂且只能想到这样去做,学习革命任重道远.......

 1     Vue.component(‘item‘,{
 2         template:‘<ul> 3                     <li v-for="child in model"> 4                         <item-child v-if="child.children" :folder="child"  @transid="getid(arguments[0])"/> 5                         <p v-else @click="getid(child.id)">{{ child.name }}</p> 6                       </li> 7                   </ul>‘,
 8         props:{ model: Object },
 9         methods:{
10             getid:function(id){
11                 this.$emit(‘transid‘,id);
12             },
13         }
14     })
15     Vue.component(‘item-child‘,{
16         template:‘<div>17                   <p @click="toggle(folder.children)" @click="getid(folder.id)">{{ folder.name }}<a v-if="folder.children">{{ open ? pack : lanch}}</a></p>18                   <item v-if="folder.children" :model="folder.children" v-show="open" @transid="getid(arguments[0])"/>19                 </div>‘,
20         props:{ folder: Object },
21         methods:{
22              toggle:function(status){
23                 if(status){ this.open = !this.open; }
24             },
25             getid:function(id){
26                 this.$emit(‘transid‘,id); 
27             }
28           },
29         data:function(){
30             return {
31                 open:false,
32                 lanch:‘ [+]‘,
33                 pack:‘ [-]‘,
34             }
35         },
36     })

这里只贴出了组件部分代码,最终效果展示:

技术分享

now!这是第一篇博客,我的一小步仍是我的一小步。

以上是关于vue 组件循环引用的主要内容,如果未能解决你的问题,请参考以下文章

Vue 3 & Composition API:v-for 循环中的模板引用错误:仅获取代理

在vue里引用swiper插件,怎么使用

Vue组件之无限级目录树构建

Element UI之Carousel 走马灯使用示例

iOS端循环引用检测实战

我可以动态地将计算属性插入到 Vue 组件中吗