2017-09-14 307 views
0

有2个由vue-cli生成的项目。为什么在Vue中require()方法后需要默认?

它的一个我可以添加像下面这段代码组件:

Vue.component('HeaderBar',require("./components/common/HeaderBar.vue"));

但是另外一个,我不能做到这一点,我必须像这样的代码:

Vue.component('HeaderBar',require("./components/common/HeaderBar.vue").default); 如果不是,我会收到此错误信息:

Failed to mount component: template or render function not defined

有人可以告诉我为什么会这样?

谢谢你的帮助。

回答

0

使用ES6导入(导出默认HeaderBar)时,导出的模块格式为{“default”:HeaderBar}。 import语句为您处理此分配,但是,您必须自己执行require(“./ mycomponent”)。default转换。 HMR接口代码无法使用导入,因为它不能内联工作。

如果您想避免这种情况,请使用module.exports而不是导出默认值。

+0

非常感谢!另一个问题是,为什么第一个项目我可以要求没有默认属性的组件? –

+0

我想这样做,但我没有足够的声誉:( –

相关问题