代码异常
vue.runtime.esm.js:587 [Vue warn]: Unknown custom element: <search_ui> - did you register the component correctly? For recursive components, make sure to provide the "name" option.
found in
---> <FormRenderHt> at src\components\FormRender\module\form-ht.vue
<HTUi> at src\components\FormRender\widget\element\HT.vue
<ElRow>
<ElForm> at packages/form/src/form.vue
<FormRender> at src\components\FormRender\module\form.vue
<FormRender2> at src\components\FormRender\module\form2.vue
<ProductEdit> at src\views\ordercreate\product\productInfoEdit.vue
<Index> at src\views\ordercreate\main\index.vue
<App> at src\App.vue
<Root>
原因分析
- 组件引入方法有问题,不符合vue语法。例如
import
和components
都需要放入引入的自定义组件。
import FormRenderHt from '@/components/FormRender/module/form-ht'
export default {
components: { FormRenderHt },
}
- 组件引入方法无问题,不符合vue机制。
通过对比分析,排除第一种异常情况,聚焦在第二种情况。可能的原因出现在:
- 异步引入产生的组件延迟引入,一个同步异步问题。(解决,修改组件引入都为异步)
- 组件嵌套太多,vue本身不支持这么多嵌套。(排除,支持多级嵌套)
// FormRenderHt 内部存在异步组件, FormRenderHt的引入也采用懒加载引入
const FormRenderHt = () => import('@/components/FormRender/module/form-ht')
export default {
components: { FormRenderHt },
}