一、递归组件
-
组件在自身的模板中调用自身的,通过
name
选项
例如:name:‘unique-name-of-my-component’
-
使用
Vue.component
注册全局组件时,全局的id会自动设置为该组件的name
选项
Vue.component('unique-name-of-my-component', {
// ...
})
二、组件之间的循环引用
组件在渲染树中护卫对方的后代/祖先——一个悖论;先把两个组件设为A和B,模块系统发现需要A,但是A依赖于B,B又依赖于A,如此往复…如此变成一个循环,不知道如何不经过其中一个组件而完全解析出另一个组件
解决办法
1)在main.js
中全局引入并注册A和B组件
2)在本地注册组件的时候,使用webpack
的异步import
componenets:{
B: () => import('./B.vue')
}
3)等到生命周期钩子 beforeCreate 时去注册它
beforeCreate: function () {
this.$options.components.B = require('./B.vue').default
}