Loading...
Loading...
ALWAYS use when writing code importing "@tanstack/vue-query". Consult for debugging, best practices, or modifying @tanstack/vue-query, tanstack/vue-query, tanstack vue-query, tanstack vue query, query.
npx skill4agent add harlan-zw/vue-ecosystem-skills tanstack-vue-query-skilld@tanstack/vue-queryuseQuery{ queryKey, queryFn, ... }useQueriesqueriesuseQueries({ queries: [...] })combineuseQueriesRefreactiveonSuccessonErroronSettleduseQueryuseInfiniteQueryuseQueriesselectQueryCachecacheTimegcTimeuseInfiniteQuerygetNextPageParamgetPreviousPageParamlastPageallPageslastPageParamallPageParamskeepPreviousDataplaceholderData: keepPreviousData@tanstack/vue-queryqueryOptionsinfiniteQueryOptionsuseMutationStateuseQueryuseInfiniteQuery() => optionsRefcombineuseQueriescombinevue-queryinjectionContexteffectScopeisLoadingisPendingisLoadingisPending && isFetching@tanstack/vue-queryisPlaceholderDatainitialPageParamuseInfiniteQueryisPausedSuspensesuspense()MaybeRefOrGetter// Preferred: Accepts ref, getter, or value
export function useUser(id: MaybeRefOrGetter<string>) {
return useQuery({
queryKey: ['user', id],
queryFn: () => fetchUser(toValue(id))
})
}// Preferred for complex reactivity
useQuery(() => ({
queryKey: ['todo', id.value],
queryFn: () => fetchTodo(id.value),
enabled: !!id.value
}))computed// Preferred: No computed needed
const { data } = useUserProjects(() => props.userId)
// Avoid: Unnecessary memoization
const userId = computed(() => props.userId)
const { data } = useUserProjects(userId)onServerPrefetchsuspense()const { data, suspense } = useQuery({ queryKey: ['test'], queryFn: fetcher })
onServerPrefetch(suspense)staleTimeconst queryClient = new QueryClient({
defaultOptions: { queries: { staleTime: 1000 * 60 * 5 } }
})queryClient.clear()gcTimeuseQueryv-modelconst { data } = useQuery({ ... })
const model = ref()
watch(data, (newData) => {
model.value = JSON.parse(JSON.stringify(newData))
}, { immediate: true })queryOptionsconst userOptions = (id: string) => queryOptions({
queryKey: ['user', id],
queryFn: () => fetchUser(id)
})
useQuery(userOptions('123'))queryKeyqueryClientKey// Plugin configuration
app.use(VueQueryPlugin, { queryClientKey: 'AppA' })
// Usage
useQuery({ queryKey: ['data'], queryFn: fetcher, queryClientKey: 'AppA' })