我已经挑战自己编写一个应用程序,该应用程序可以从API提取数据并在各种组件中显示它们。我对VueJS很陌生。我使用VueResource来访问API,使用VueX来进行状态管理。
我已经设置了商店,添加了动作,变异和获取方法等,并且在组件中添加created
生命周期方法后,我立即收到错误消息:
ReferenceError: Vue is not defined
at Store.eval (eval at <anonymous> (build.js:1017), <anonymous>:11:3)
at Array.wrappedActionHandler (eval at <anonymous> (build.js:1338), <anonymous>:711:23)
at Store.dispatch (eval at <anonymous> (build.js:1338), <anonymous>:433:15)
...
我的代码如下:
import Vue from 'vue'
import App from './App.vue'
import VueResource from 'vue-resource'
import store from './store/store'
Vue.use(VueResource);
new Vue({
el: '#app',
store,
render: h => h(App)
})
import Vue from 'vue'
import Vuex from 'vuex'
import actions from './actions'
import mutations from './mutations'
import getters from './getters'
Vue.use(Vuex)
const store = new Vuex.Store({
state: {
products: []
},
getters,
actions,
mutations
})
export default store
<template>
...
</template>
<script>
import { FETCH_MEALS } from './store/types';
export default {
//load meals on page load
created() {
this.$store.dispatch(FETCH_MEALS)
},
computed: {
meals() {
return this.$store.getters.meals
},
salads() {
return this.$store.getters.salads
},
lunches() {
return this.$store.getters.lunches
},
starters() {
return this.$store.getters.starters
}
}
}
</script>
我被困住了,我不知道自己在做什么错。你有什么想法吗?
我使用vue-cli生成的典型样板,并使用Webpack构建main.js。
import { API_ROOT } from '../config'
import * as types from './types';
export default {
[types.FETCH_MEALS]: ({commit}) => {
Vue.http.get(API_ROOT + '/meals.json')
.then(response => response.data)
.then(meals => {
commit(types.SET_MEALS, meals)
})
}
};
import * as types from './types';
export default {
[types.MUTATE_UPDATE_VALUE]: (state, payload) => {
state.value = payload;
}
};
import * as types from './types';
export default {
[types.VALUE]: state => {
return state.value;
}
};
答案 0 :(得分:5)
我的猜测是,您在未列出的列表中使用了Vue
(如Vue.set()
)
actions.js
,mutations.js
或getters.js
,但忘记添加:
import Vue from 'vue'
该文件的开头。
答案 1 :(得分:-1)
在GSP中是
<asset:javascript src="/vuebundle.js"/>