【发布时间】:2019-10-16 04:15:47
【问题描述】:
为什么不显示来自jsonplaceholder 的json? 我在这里错过了什么吗?这只是我第一次使用 Vuex。
顺便说一句,我将文件分开以便我可以轻松调试它,我认为这对我来说是一个很好的做法,因为我计划在更大的项目中实现 vuex。 这是我的 index.js:
import Vue from 'vue';
import Vuex from 'vuex';
import articles from './modules/articles';
//Load Vuex
Vue.use(Vuex);
//Create store
export default new Vuex.Store({
modules: {
articles
}
})
这是我的文章.js。
import axios from 'axios';
//state
const state = {
articles: []
};
//actions
const actions = {
loadArticles({ commit }) {
axios.get('https://jsonplaceholder.typicode.com/todos')
.then(response => response.data)
.then(articles => {
commit('displayArticles', articles,
console.log(articles))
})
}
};
//mutations
const mutations = {
displayArticles(state, articles) {
state.articles = articles;
}
};
//export
export default {
state,
getters,
actions,
mutations
};
最后是我的 home.vue,它将显示来自 vuex 的数据:
<template>
<section>
<h1>HI</h1>
<h1 v-for="article in articles" :key="article.id">{{article.id}}</h1>
</section>
</template>
<script>
import { mapState } from "vuex";
export default {
mounted() {
this.$store.dispatch("displayArticles");
},
computed: mapState(["articles"])
};
</script>
【问题讨论】: