[Vue warn]: Failed to mount component: template or render function not defined.
今天上班运行vue项目,当我进入昨天写的一个页面时,突然蹦出了上面这个错误,顿时我不知所挫了,昨天还好好的,为什么今天就报错了呢?报错页面目录结构:
senior-certification(文件夹) errorMsg.js(表单验证提示文字) index.js(页面js,由于不想让index.vue文件代码数量过多,因此将script内容单独拿出来放到单独的js中) index.vue(页面) senior-certification.scoped.styl(样式) validations.js(表单验证器规则)
页面结构
...
router.js
let SeniorCertification = () => import('./views/usercenter/senior-certification');const router = new Router({ { path: '/usercenter/senior-certification', name: 'senior-certification', component: SeniorCertification, meta: { requireAuth: true }, },});export default router;
以上代码看上去没有任何问题对吧,也看不出哪里有问题,毕竟昨天都还好好的。那么问题究竟出在哪呢?经过我反复测试及google,发现问题出现在这段代码中:
let SeniorCertification = () => import('./views/usercenter/senior-certification');
然后再看我的目录结构: senior-certification(文件夹) errorMsg.js(表单验证提示文字) index.js(页面js,由于不想让index.vue文件代码数量过多,因此将script内容单独拿出来放到单独的js中) index.vue(页面) senior-certification.scoped.styl(样式) validations.js(表单验证器规则)
我把本应在<script>标签中的代码拿出来放到了index.js上,而我在router.js
中引入组件时又偷懒了。因此vue-loader在引入时把index.js当做了入口,而不是index.vue。所以就出现了上面这个问题,解决方案很简单,引入组件时加个index.vue
就可以了。
let SeniorCertification = () => import('./views/usercenter/senior-certification/index.vue');