vuex和nuxt的新手,所以可能有一个非常简单的解决方案。我有两个中间件,一个使用AXIOS与github进行api调用,另一个使用转换为JSON的medium.com用户的RSS源。
github变异在提交存储时工作正常,中等变异不承诺存储。
// store / index.js
export const state = () => ({
github: [],
medium: [],
blog: []
})
export const mutations = {
ADD_MEDIUM(state, data) {
data.items.forEach((el) => {
state.medium.push({
'createdOn': el.pubDate,
'title': el.title,
'url': el.link
})
})
},
ADD_GITHUB(state, data) {
if(state.github.length === 0){
data.data.forEach((el) => {
state.github.push({
'createdOn': el.created_at,
'title': el.full_name,
'url': el.html_url
})
})
}
},
}
// middleware / medium.js
import rssParser from 'rss-parser'
let parser = new rssParser()
export default function ({ store, route }) {
parser.parseURL('https://medium.com/feed/@user_name')
.then((resp) => {
store.commit('ADD_MEDIUM', resp)
})
}
// middleware / github.js
import axios from 'axios'
export default function ({ store, route }) {
axios.get('https://api.github.com/users/user_name/repos')
.then((resp) => {
store.commit('ADD_GITHUB', resp)
})
}