vue2 组件调用组件报错:make sure to provide the "name" option.

我用vue cli 脚手架

安装的是 webpack-simple 模板

目录结构如下

图片描述

我在App.vue中导入components文件夹下的组件都是可以的

但我components中的组件调用组件会报错,如header.vue 调用 dialog.vue,报错内容如下:

Unknown custom element: <my-dialog> - did you register the component correctly? For recursive components, make sure to provide the "name" option. 
// 在header.vue 中调用dialog.vue
import myDialog from './dialog.vue';
//template中
<my-dialog></my-dialog>

请问这报错如何解决?
(我在app.vue中加载组件,这样的写法是成功的,google也有相关的报错信息,但我没解决)


谢谢,大脑短路,组件需要注册外,还要声明下,才能使用,谢谢大家回答,犯了个低级错误,谢谢

阅读 91.5k
7 个回答

应该是components里面没注册你引入的组件,要在当前模板里使用一个组件首先要引入那个组件也就是 import xxx form './xxx',只引入还不行还需在components里面声明(或者说是注册这个组件),之后才可在模板中使用。附Vue官方组件文档连接 http://cn.vuejs.org/v2/guide/...

不是组件问题,是script标签问题, 在.vue文件里面使用了import '../aa.js'就可以用,使用<script src='a.js'>..直接就报组件未注册成功;

header.vue 中 有没有加components: { myDialog: myDialog } ?

没注册组件,错误都说了噶

楼主最后怎么解决的?

新手上路,请多包涵
@Component({
      components: {
          CancelErrorDialog,
      },
  })
@Component   //这里多写啦一遍,去掉就可以
export default class MyOrder extends Vue {

@Component

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题