概览
Vue Query 通常被描述为 Vue 缺少的数据获取(data-fetching)库,但是从更广泛的角度来看,它使 Vue 程序中的获取,缓存,同步和更新服务器状态变得轻而易举。
动机
开箱即用,Vue 没有内置的从组件中获取或更新数据的方式,因此开发人员最终会构建自己的获取数据的方式。 这通常意味着使用 Vue Hooks 将基于组件的状态 state 和 effects 整合在一起,或者使用更通用的状态管理库来存储和提供整个程序中的异步数据。
尽管大多数传统状态管理库非常适合用于处理客户端状态,但是它们并不适合处理异步或服务器状态。 这是因为服务器状态完全不同。对于初学者,服务器状态:
- 远程保留在您无法控制或拥有的位置
- 需要异步 API 进行获取和更新
- 意味着共享所有权,可以在你不知情的情况下被其他人改变
- 如果不小心,可能会在应用中变得"过时"
一旦你掌握了应用中服务器状态的本质,你会遇到更多的挑战,例如:
- 缓存...(这可能是编程中最难的事情)
- 将对同一数据的多个请求重复数据集合到单个请求中
- 在后台更新"过时"的数据
- 知道数据何时"过时"
- 尽可能快地反映数据更新
- 分页和延迟加载数据等性能优化
- 管理服务器状态的内存和 GC
- 结构化共享并存储查询结果
如果您没有被这个列表压垮,那么这一定意味着您可能已经解决了所有的服务器状态问题,值得获奖。 然而,如果你和大多数人一样,你要么还没有解决所有这些挑战,要么还没有解决大部分挑战,我们只是触及了表面!
Vue Query 无疑是管理服务器状态的最佳库之一。它非常好用,开箱即用,无需配置,并且可以随着应用的增长而根据自己的喜好进行定制。
Vue Query 使您可以击败并征服棘手的服务器状态挑战和障碍,并在开始控制您的应用数据之前对其进行控制。
从更专业的角度来说,Vue Query 可能会:
- 帮助您从应用中删除许多复杂和容易引起误解的代码行,用少量的 Vue 查询逻辑代替
- 使您的应用更易于维护,更易于构建新功能,而不必担心如何连接新的服务器状态数据源
- 通过应用的 GUI 及执行层面的更快的数据响应,直接影响您的最终用户
- 潜在地帮助您节省带宽和提高内存性能