mutationOptions
概述
1function mutationOptions<TData = unknown, TError = Error, TVariables = void, TOnMutateResult = unknown>(options: WithRequired<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">): WithRequired<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">;2function mutationOptions<TData = unknown, TError = Error, TVariables = void, TOnMutateResult = unknown>(options: () => WithRequired<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">): () => WithRequired<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">;3function mutationOptions<TData = unknown, TError = Error, TVariables = void, TOnMutateResult = unknown>(options: Omit<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">): Omit<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">;4function mutationOptions<TData = unknown, TError = Error, TVariables = void, TOnMutateResult = unknown>(options: () => Omit<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">): () => Omit<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">;WithRequired<MutationOptions>→WithRequired<MutationOptions>:你通常可以向mutationOptions传入所有能传给useMutation的参数。此重载要求提供mutationKey,以便后续(例如通过useMutationState)查找该修改。() => WithRequired<MutationOptions>→() => WithRequired<MutationOptions>:与带必需mutationKey的普通对象重载相同,但适用于闭包中引用响应式状态(即在函数体内读取的ref)的选项。请将其包裹在 getter 中,以确保useMutation及其他使用者始终读取当前值,而非选项创建时捕获的值。Omit<MutationOptions>→Omit<MutationOptions>:你通常可以向mutationOptions传入所有能传给useMutation的参数。此重载不要求提供mutationKey——当你无需后续通过mutationKey过滤器(例如useMutationState)定位该修改时,请使用此形式;它仍可通过其他过滤器(例如status)被观察。() => Omit<MutationOptions>→() => Omit<MutationOptions>:与不带mutationKey的普通对象重载相同,但适用于闭包中引用响应式状态(即在函数体内读取的ref)的选项。请将其包裹在 getter 中,以确保useMutation及其他使用者始终读取当前值,而非选项创建时捕获的值。
调用签名
1function mutationOptions<TData = unknown, TError = Error, TVariables = void, TOnMutateResult = unknown>(options: WithRequired<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">): WithRequired<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">;定义于:packages/vue-query/src/mutationOptions.ts:36
你通常可以向 mutationOptions 传入所有能传给 useMutation 的参数。此重载要求提供 mutationKey,以便后续(例如通过 useMutationState)查找该修改。
与查询选项中的 queryKey 属性(例如 queryOptions({ queryKey: [...] }))不同,mutationKey 条目若为响应式 getter(() => id.value),则永远不会被解包——存储的是 getter 函数本身,而非其当前值。而 ref 条目仍会按常规方式解包。
类型参数
TData
TData = unknown
TError
TError = Error
TVariables
TVariables = void
TOnMutateResult
TOnMutateResult = unknown
参数
options
WithRequired<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">
要使用的修改选项,与传给 useMutation 的选项完全相同,且必须包含 mutationKey。
返回值
WithRequired<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">
原始选项对象,未作任何更改。
参见
使用 useMutation 运行这些选项所描述的修改。
示例
通过 mutationKey 在其他位置查找该修改,例如用于全局“正在保存…”指示器:
1<script setup lang="ts">2import { mutationOptions, useMutationState } from '@tanstack/vue-query'3import { computed } from 'vue'45const createPostOptions = mutationOptions({6 mutationKey: ['posts', 'create'],7 mutationFn: createPost,8})910// Call `useMutationState` once — it manages its own subscription — then derive from its result.11const creatingPosts = useMutationState({12 filters: { mutationKey: createPostOptions.mutationKey, status: 'pending' },13})14const isCreatingPost = computed(() => creatingPosts.value.length > 0)15</script>调用签名
1function mutationOptions<TData = unknown, TError = Error, TVariables = void, TOnMutateResult = unknown>(options: () => WithRequired<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">): () => WithRequired<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">;定义于:packages/vue-query/src/mutationOptions.ts:80
与带必需 mutationKey 的普通对象重载相同,但适用于闭包中引用响应式状态(即在函数体内读取的 ref)的选项。请将其包裹在 getter 中,以确保 useMutation 及其他使用者始终读取当前值,而非选项创建时捕获的值。
类型参数
TData
TData = unknown
TError
TError = Error
TVariables
TVariables = void
TOnMutateResult
TOnMutateResult = unknown
参数
options
() => WithRequired<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">
返回修改选项的函数,必须包含 mutationKey,并在需要时重新求值。
返回值
一个返回相同选项对象(未作任何更改)的函数。
() => WithRequired<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">
参见
使用 useMutation 运行这些选项所描述的修改。
示例
1<script setup lang="ts">2import { mutationOptions, useMutation } from '@tanstack/vue-query'34const props = defineProps<{ userId: number }>()56const createPostOptions = mutationOptions(() => ({7 mutationKey: ['posts', 'create'],8 // Reacts to changes on `props.userId`, unlike the plain-object overload.9 mutationFn: (title: string) => createPost({ title, userId: props.userId }),10}))1112const mutation = useMutation(createPostOptions)13</script>14 15<template>16 <button @click="mutation.mutate('Hello')">Create</button>17</template>调用签名
1function mutationOptions<TData = unknown, TError = Error, TVariables = void, TOnMutateResult = unknown>(options: Omit<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">): Omit<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">;定义于:packages/vue-query/src/mutationOptions.ts:122
你通常可以向 mutationOptions 传入所有能传给 useMutation 的参数。此重载不要求提供 mutationKey——当你无需后续通过 mutationKey 过滤器(例如 useMutationState)定位该修改时,请使用此形式;它仍可通过其他过滤器(例如 status)被观察。
类型参数
TData
TData = unknown
TError
TError = Error
TVariables
TVariables = void
TOnMutateResult
TOnMutateResult = unknown
参数
options
Omit<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">
要使用的修改选项,与传给 useMutation 的选项完全相同,且不包含 mutationKey。
返回值
Omit<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">
原始选项对象,未作任何更改。
备注
有关通过 useMutationState 查找修改的示例,请参阅其他重载。
参见
使用 useMutation 运行这些选项所描述的修改。
示例
1<script setup lang="ts">2import { mutationOptions, useMutation } from '@tanstack/vue-query'34const createPostOptions = mutationOptions({5 mutationFn: createPost,6})78const mutation = useMutation(createPostOptions)9</script>10 11<template>12 <button @click="mutation.mutate({ title: 'Hello' })">Create</button>13</template>调用签名
1function mutationOptions<TData = unknown, TError = Error, TVariables = void, TOnMutateResult = unknown>(options: () => Omit<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">): () => Omit<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">;定义于:packages/vue-query/src/mutationOptions.ts:165
与不带 mutationKey 的普通对象重载相同,但适用于闭包中引用响应式状态(即在函数体内读取的 ref)的选项。请将其包裹在 getter 中,以确保 useMutation 及其他使用者始终读取当前值,而非选项创建时捕获的值。
类型参数
TData
TData = unknown
TError
TError = Error
TVariables
TVariables = void
TOnMutateResult
TOnMutateResult = unknown
参数
options
() => Omit<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">
返回修改选项的函数,不包含 mutationKey,并在需要时重新求值。
返回值
一个返回相同选项对象(未作任何更改)的函数。
() => Omit<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">
参见
使用 useMutation 运行这些选项所描述的修改。
示例
1<script setup lang="ts">2import { mutationOptions, useMutation } from '@tanstack/vue-query'34const props = defineProps<{ userId: number }>()56const createPostOptions = mutationOptions(() => ({7 // Reacts to changes on `props.userId`, unlike the plain-object overload.8 mutationFn: (title: string) => createPost({ title, userId: props.userId }),9}))1011const mutation = useMutation(createPostOptions)12</script>13 14<template>15 <button @click="mutation.mutate('Hello')">Create</button>16</template>参数
options
() => Omit<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">
返回修改选项的函数,不包含 mutationKey,并在需要时重新求值。
返回值
一个返回相同选项对象(未作任何更改)的函数。
() => Omit<MutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">