直接在action中访问state.page并在同一个地方将值增加1的允许程度如何?也许最好通过类似于 的突变来做到这一点setProducts()?事实是,无法直接逃避上诉。我只能通过突变使值增加1,对吗?
// state
const state = {
page: 1,
all: []
}
// getters
const getters = {}
// actions
const actions = {
getProducts ({ commit }, $state) {
axios.get('/api/products', {
params: {
page: state.page,
},
}).then(({ data }) => {
if (data.data.length) {
commit('setProducts', data.data)
state.page += 1
$state.loaded();
} else {
$state.complete();
}
});
}
}
// mutations
const mutations = {
setProducts (state, products) {
state.all.push(...products)
}
}
export default {
namespaced: true,
state,
getters,
actions,
mutations
}
1)在行动中,你可以传递getter,这样调用就不是直接的,或者你可以把状态本身(描述)
2) 任何状态变化最好通过突变来完成,因为:
一般来说,一切都建立在公认的发展理念之上。如果您不打算向任何人展示,您可以做任何您想做的事情。