Skip to main content

Composables

Reference for every auto-imported Better Convex Nuxt composable and optimistic helper.

All APIs on this page are auto-imported in Nuxt application code. Import api from #convex/api.

Query APIs

useConvexQuery

ts
await useConvexQuery(query, args, options?)

Options: server, subscribe, initialData, transform, keepPreviousData, auth.

Returns: data, error, refresh, clear, pending, status, isStale.

Use 'skip' as the arguments value to disable execution. Query guide.

defineSharedConvexQuery

ts
defineSharedConvexQuery({ key, query, args, options? })

Returns a zero-argument composable that creates one shared query state per Nuxt app. The options and return state match useConvexQuery. Sharing guide.

useConvexPaginatedQuery

ts
await useConvexPaginatedQuery(query, args, options?)

Options: initialNumItems, server, subscribe, initialData, transform, keepPreviousData, auth.

Returns: results, status, isLoading, isStale, hasNextPage, loadMore, error, refresh, reset.

Status is idle, loading-first-page, ready, loading-more, exhausted, or error. Pagination guide.

Write APIs

useConvexMutation

ts
useConvexMutation(mutation, options?)

Options: optimisticUpdate, onSuccess, onError.

Returns a callable with .safe(), data, status, pending, error, and reset(). Mutation guide.

useConvexAction

ts
useConvexAction(action, options?)

Options: onSuccess, onError.

Returns a callable with .safe(), data, status, pending, error, and reset(). Action guide.

Regular optimistic helpers

These functions run inside a mutation's optimisticUpdate(store, args) callback.

HelperRequired fields
updateQueryquery, exact args, store, updater
setQueryDataquery, exact args, store, value
updateAllQueriesquery, optional argsToMatch, store, updater
deleteFromQueryarray query, exact args, store, shouldDelete

Paginated optimistic helpers

HelperRequired fields
insertAtTopquery, optional argsToMatch, store, item
insertAtPositionprevious fields plus sortOrder, sortKeyFromItem
insertAtBottomIfLoadedquery, optional argsToMatch, store, item
updateInPaginatedQueryquery, optional argsToMatch, store, updateValue
deleteFromPaginatedQueryquery, optional argsToMatch, store, shouldDelete

See optimistic updates.

Authentication APIs

useConvexAuth

ts
useConvexAuth()

Returns: status, isPending, isAuthenticated, user, token, error, signIn, signUp, signOut, refresh, ready, client.

Status is disabled, loading, anonymous, authenticated, or error. Auth state guide.

useConvexUser

ts
useConvexUser(query, args, options?)

Options: source, transform, seedFromSession, subscribe.

Returns: state, data, pending, status, isStale, error, source, refresh, clear.

The source is none, session, better-auth, or projection.

Client and configuration

useConvex

ts
useConvex()

Client-only. Returns one stable handle containing exactly query, mutation, action, and onUpdate. It throws when the client runtime or Convex URL is unavailable.

useConvexConfig

ts
useConvexConfig()

Returns the normalized read-only public runtime configuration for the current Nuxt app. It does not expose server secrets.

useConvexConnectionState

ts
useConvexConnectionState()

Returns: state, isConnected, isReconnecting, pendingMutations, pendingActions, shouldShowOfflineUi.

File APIs

useConvexFileUpload

ts
useConvexFileUpload(generateUploadUrlMutation, options?)

Options: onSuccess, onError, onProgress, maxSize, allowedTypes.

Returns: upload, data, status, pending, progress, error, cancel.

useConvexUploadQueue

ts
useConvexUploadQueue(generateUploadUrlMutation, options?)

Options: maxConcurrent, continueOnError, onItemSuccess, onItemError, onQueueIdle.

Returns queue items, counts, aggregate progress, enqueue, enqueueSafe, cancellation, clear, and reset methods.

useConvexStorageUrl

ts
useConvexStorageUrl(getUrlQuery, storageId, { auth? })

Returns ComputedRef<string | null>. The default auth mode is none; private URL queries normally use required.