Vueのエラーメモ
Failed to mount component: template or render function not defined.
VueRouterを使用したところ「Failed to mount component: template or render function not defined.」というエラーが出ました。
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'HelloWorld',
component: require('../components/HelloWorld.vue')
}
]
})
原因
vue-loderのバージョン13以上になるとこのエラーが出るようです。
Release v13.0.0 · vuejs/vue-loader
対処法
対処法はこちらに記載がありました。
下記に記載する3パターンのいずれでもエラーを回避出来ます。
requireのところで「default」を付ける
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'HelloWorld',
component: require('../components/HelloWorld.vue').default
}
]
})
アロー関数を使用する。
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'HelloWorld',
component: () => import('../components/HelloWorld.vue')
}
]
})
importをする
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
import helloWorld from './components/HelloWorld.vue';
export default new Router({
routes: [
{
path: '/',
name: 'HelloWorld',
component: helloWorld
}
]
})

0 件のコメント :
コメントを投稿