译零 TransZero · TanStack Query v4 中文文档
主站

快速入门

该示例非常简要地说明了 Vue Query 的 3 个核心概念:

HTML
1<script setup>2import { useQueryClient, useQuery, useMutation } from '@tanstack/vue-query'34// Access QueryClient instance5const queryClient = useQueryClient()67// Query8const { isLoading, isError, data, error } = useQuery({9  queryKey: ['todos'],10  queryFn: getTodos,11})1213// Mutation14const mutation = useMutation({15  mutationFn: postTodo,16  onSuccess: () => {17    // Invalidate and refetch18    queryClient.invalidateQueries({ queryKey: ['todos'] })19  },20})2122function onButtonClick() {23  mutation.mutate({24    id: Date.now(),25    title: 'Do Laundry',26  })27}28</script>29 30<template>31  <span v-if="isLoading">Loading...</span>32  <span v-else-if="isError">Error: {{ error.message }}</span>33  <!-- We can assume by this point that `isSuccess === true` -->34  <ul v-else>35    <li v-for="todo in data" :key="todo.id">{{ todo.title }}</li>36  </ul>37  <button @click="onButtonClick">Add Todo</button>38</template>