vue的组件一般的都是import进来,在components注册,然后就可在父组件里面使用了,但是现在项目的组件是从后台拿到的组件名称,然后if else判断是否有import这个组件,最后生成。前期还好就3,4个组件,但是后来越来越多。。。if else越写越长,然后我在想有没有那种动态注册组件的方法,官网看了,网上找了一圈,曾经有人这么写
/**
*@desc 统一加载注册组件资源*/
registerComponent(templateName){
Vue.component(templateName, require("./../dashComponent/"+templateName+".vue"));
},
注册方案
this.registerComponent(this.layout[index].component);
这样就需要组件名称和后台给的组件名称相对应,自己尝试了以后发现并不行。。。。
最后渲染出来的dom
控制台也提示
这个应该是没有注册成功吧,之前有同学遇到过这种情况嘛?
Vue.component(templateName,require(
./heNan/${templateName}.vue
).default);可以这样用,但是提倡使用import的