我正在使用vue.js 2.x并使用webpack设置一个简单的应用程序。
当我在开发模式下启动应用程序时,我在Chrome控制台中收到此错误,并且页面上没有显示任何内容:
未捕获的TypeError:_vm._m不是函数(...)
服务器上没有错误(没有webpack错误)。
Routes.js
import Home from './components/Home.vue';
import Portfolio from './components/portfolio/Portfolio.vue';
import Stocks from './components/stocks/Stocks.vue';
export const routes = [{
path: '/',
components: Home
}, {
path: '/portfolio',
components: Portfolio
}, {
path: '/stocks',
components: Stocks
}]
main.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App.vue'
import { routes } from './routes'
Vue.use(VueRouter);
const router = new VueRouter({
mode: 'history',
routes
});
new Vue({
el: '#app',
router,
render: h => h(App)
})
App.vue
<template>
<div class="container">
<router-view></router-view>
</div>
</template>
<script>
export default {
}
</script>
<style>
</style>
Home.vue
<template>
<h1>The home component</h1>
</template>
知道造成它的原因是什么?
答案 0 :(得分:0)
在测试时,我可能不会尝试在您的Vue实例上使用render
。
您应该有一个像index.html
这样的根文件,它会为您的应用创建一个容器并调用App组件:
#index.html
<div id="my-vue-app">
<app></app>
</div>
然后编辑main.js,用以下内容替换初始化Vue实例的方式:
new Vue({
components: {
App
},
router
}).$mount('#my-vue-app')
答案 1 :(得分:0)
所以,像往常一样,这是一个愚蠢的错误,我在路线定义中有一个错字,
我使用components
代替component
:
export const routes = [{
path: '/',
//should be component
components: Home
}