运行 一个简单的 vue.js 应用程序时出现奇怪的错误
Weird error when running a simple vue.js app
我正在使用 vue.js 2.x 并且只是使用 webpack 设置了一个简单的应用程序。
当我在开发模式下启动应用程序时,我在 chrome 控制台中收到此错误并且页面上没有显示任何内容:
Uncaught TypeError: _vm._m is not a function(…)
服务器没有错误(没有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>
知道是什么原因造成的吗?
我可能会在测试时不再尝试在您的 Vue 实例上使用 render
。
你应该有一个像 index.html
这样的根文件,它为你的应用程序创建一个容器并调用应用程序组件:
#index.html
<div id="my-vue-app">
<app></app>
</div>
然后编辑 main.js,将初始化 Vue 实例的方式替换为以下内容:
new Vue({
components: {
App
},
router
}).$mount('#my-vue-app')
所以,和往常一样,这是一个愚蠢的错误,我在路由定义中有错别字,
我使用 components
而不是 component
:
export const routes = [{
path: '/',
//should be component
components: Home
}
我正在使用 vue.js 2.x 并且只是使用 webpack 设置了一个简单的应用程序。
当我在开发模式下启动应用程序时,我在 chrome 控制台中收到此错误并且页面上没有显示任何内容:
Uncaught TypeError: _vm._m is not a function(…)
服务器没有错误(没有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>
知道是什么原因造成的吗?
我可能会在测试时不再尝试在您的 Vue 实例上使用 render
。
你应该有一个像 index.html
这样的根文件,它为你的应用程序创建一个容器并调用应用程序组件:
#index.html
<div id="my-vue-app">
<app></app>
</div>
然后编辑 main.js,将初始化 Vue 实例的方式替换为以下内容:
new Vue({
components: {
App
},
router
}).$mount('#my-vue-app')
所以,和往常一样,这是一个愚蠢的错误,我在路由定义中有错别字,
我使用 components
而不是 component
:
export const routes = [{
path: '/',
//should be component
components: Home
}