来自 Vue 中不同组件的多个请求 - 最佳实践

Posted

技术标签:

【中文标题】来自 Vue 中不同组件的多个请求 - 最佳实践【英文标题】:Multiple requests from different components in Vue - best practice 【发布时间】:2021-07-26 14:39:09 【问题描述】:

我的应用使用自制的 - HTTP REST API。我使用 vueX 进行状态管理。

我有一些嵌套组件需要访问与父级相同的 http 结果,但我也在其他父级不获取结果的地方使用该组件。有没有办法(模式)来确保资源不会被多次获取。

我找到了这个,并且喜欢这种做事方式,但我不知道如何向服务器发出新请求以更新结果。 https://tkacz.pro/use-vuex-to-avoid-multiple-requests-from-different-components/

这甚至是最佳做法吗?

谁有更好的方法?

【问题讨论】:

我不知道如何向服务器发出新请求以更新结果 - 向操作添加参数,例如 refresh 年,我已经考虑过,但我想要一个更干净和通用的解决方案。如果动作有其他参数怎么办?那么就不是那么清楚了。 ( 有道理 ) ;)。我还提出了一个解决方案,通过另一个操作“clear()”将列表设置为空 [] .. 但我希望有更好的模式。 如果预期的参数数量不详,请使用一个 options 参数而不是多个参数。 【参考方案1】:

使用 vuex 并检查您的状态是否已被填充就足够了。如果不是,请致电vuex action。它将帮助您在应用中全局共享状态。

不确定这部分

如何向服务器发出新请求以更新结果

第二次调用 API 会是什么问题?如果需要,您可以在评论中使用建议的解决方案,例如添加 ?refresh 甚至添加 ID id=randomId

【讨论】:

我提到的问题适用于 Vuex 和动作参数,在这种情况下,动作缓存了结果并且没有达到可以使用 HTTP 参数的地步。 从未听说过 Vuex 上有任何缓存。对我来说,如果你调用一个动作,它总是会到达服务器。这是默认行为,您确定吗? (不得不承认我最近在做很多 GraphQL,所以你可能是对的) OP 链接的文章中描述了该技术。 啊,我的错,没注意!

以上是关于来自 Vue 中不同组件的多个请求 - 最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

iPhone应用程序编程中网络呼叫请求/响应的最佳实践[关闭]

vue2.0 keep-alive最佳实践

包含来自多个源表的数据的维度中自然键的最佳实践

来自存储过程的多个结果集的 s-s-rS 最佳实践

vue2.0 keep-alive最佳实践

vue项目的一些最佳实践提炼和经验总结