来自 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 中不同组件的多个请求 - 最佳实践的主要内容,如果未能解决你的问题,请参考以下文章