Vue.js Vuex在CRUD操作之后更新状态的方法

Vue.js Vuex在CRUD操作之后更新状态的方法,vue.js,vuex,Vue.js,Vuex,假设我有一个由名为fetchBooks的Vuex操作检索的书籍集合(此操作将SETBOOKS突变提交到更改状态) 当我分派动作remove删除一本书时,我有两个选项: 1) 向API发送删除资源的请求,然后分派fetchBooks以重新加载图书列表 2) 向API发送删除资源的请求,然后提交REMOVE变异以从状态中删除图书,而无需任何额外的HTTP请求 第一个似乎更简单,我可以使用相同的技术添加/更新/删除,代价是额外请求重新加载列表 第二种更便宜(没有额外的请求),但需要更多的逻辑来处理每个

假设我有一个由名为
fetchBooks
的Vuex操作检索的书籍集合(此操作将
SETBOOKS
突变提交到更改状态)

当我分派动作
remove
删除一本书时,我有两个选项:

1) 向API发送删除资源的请求,然后分派
fetchBooks
以重新加载图书列表

2) 向API发送删除资源的请求,然后提交
REMOVE
变异以从状态中删除图书,而无需任何额外的HTTP请求

第一个似乎更简单,我可以使用相同的技术添加/更新/删除,代价是额外请求重新加载列表

第二种更便宜(没有额外的请求),但需要更多的逻辑来处理每个添加/更新/删除案例的状态

正确的方法是什么?

我会选择选项2。 在一般实践中,“getBooks”可能是一个巨大的数组,最好不要在本地已有数据时从数据库中重新查询数据


只需确保您是在try-catch块中删除该书,因此如果在后端没有删除,您应该提醒用户。

是的,第二个似乎更便宜,但您必须确保在后端完成更新。在delete调用中,获取资源作为响应。然后重新加载状态。