Vue Query
Lynx 提供了 Fetch API 用于发起网络请求。虽然你可以直接使用 fetch(),但我们推荐使用 TanStack Query (Vue Query) 来管理服务端状态——它开箱即用地处理了缓存、后台重新获取、过期数据和数据变更等问题。
另请参阅:Lynx — 网络请求
使用 Vue Query
安装
设置
在你的 vue-lynx 应用中注册 Vue Query 插件:
src/index.ts
使用 useQuery 获取数据
使用 useQuery 来获取和缓存服务端数据。它返回响应式的 ref,包括 data、isLoading、isError 和 error:
src/App.vue
响应式查询键
Vue Query 相比 React 版本的一个关键优势是查询键可以是响应式的。当键中的 ref 或 computed 值发生变化时,查询会自动重新获取数据——无需手动追踪依赖。
示例应用使用此特性实现搜索过滤和依赖查询:
src/App.vue
这里 queryKey 和 enabled 都是 computed ref。Vue Query 会响应式地监听它们——当用户点击不同的用户时,selectedUserId 发生变化,键随之更新,新用户的帖子会自动获取。无需使用监听器或 onMounted 回调。
使用乐观更新进行数据变更
使用 useMutation 来修改服务端数据。乐观更新可以让你立即在 UI 中反映变更,如果请求失败则自动回滚:
src/App.vue
直接使用 fetch()
对于简单的一次性请求,你可以直接使用 Fetch API 配合 Vue 的响应式系统:
src/App.vue
对于简单读取之外的需求——缓存、后台刷新、分页、数据变更——请使用 TanStack Query。
更多资源请参阅 TanStack Query — Vue 概览。