Vue.js组件间的循环引用方法示例

2020-06-16 05:54:30易采站长站整理

export default {
props: ['folder'],
data: function () {
return {}
},
beforeCreate: function () {
// 官方文档给出的是require
// this.$options.components.TreeFolderContents = require('./tree-folder-contents.vue')
// 在基于vue-cli@2.8.1按照上面的写法还是会报错
// Failed to mount component: template or render function not defined.
// 所以我们应该改为基于es6的写法异步加载一个组件如下
this.$options.components.TreeFolderContents = () => import('./tree-folder-contents.vue')
}
}
</script>

TreeFolder 组件导入 TreeFolderContents 组件,并在 components 中注册 TreeFolderContents 组件。

components/tree-folder-contents.vue


<template>
<ul>
<li v-for="child in children">
<tree-folder v-if="child.children" :folder="child"></tree-folder>
<span v-else>{{ child.name }}</span>
</li>
</ul>
</template>
<script>
import TreeFolder from './tree-folder'
export default {
props: ['children'],
components: {
TreeFolder
}
}
</script>

TreeFolderContents 组件又导入 TreeFolder 组件,并在 components 中注册 TreeFolder 组件,产生了循环引用。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对软件开发网的支持。