Skip to content

QueryClient

An enhanced version of TanStack's Query QueryClient.
Adds specialized configurations for library entities like Query or Mutation.

Reference to source code

API Signature

ts
import { QueryClient } from "@tanstack/query-core";

class QueryClient extends QueryClient {
  constructor(config?: QueryClientConfig);
}

Configuration

When creating an instance, you can provide:

ts
import { DefaultOptions } from '@tanstack/query-core';

interface QueryClientConfig {
  defaultOptions?: DefaultOptions & {
    queries: QueryFeatures;
    mutations: MobxMutatonFeatures;
  };
  hooks?: QueryClientHooks;
}

Key methods and properties

queryFeatures

Features configurations exclusively for Query/InfiniteQuery

mutationFeatures

Features configurations exclusively for Mutation

hooks

Entity lifecycle events. Available hooks:

HookDescription
onQueryInitTriggered when a Query is created
onInfiniteQueryInitTriggered when a InfiniteQuery is created
onMutationInitTriggered when a Mutation is created
onQueryDestroyTriggered when a Query is destroyed
onInfiniteQueryDestroyTriggered when a InfiniteQuery is destroyed
onMutationDestroyTriggered when a Mutation is destroyed

Inheritance

QueryClient inherits all methods and properties from QueryClient, including:

Usage Example

ts
import { QueryClient } from 'mobx-tanstack-query';

// Create a client with custom hooks
const client = new QueryClient({
  hooks: {
    onQueryInit: (query) => {
      console.log('[Init] Query:', query.queryKey);
    },
    onMutationDestroy: (mutation) => {
      console.log('[Destroy] Mutation:', mutation.options.mutationKey);
    }
  },
  defaultOptions: {
    queries: {
      enableOnDemand: true,
    },
    mutations: {
      invalidateByKey: true,
    }
  },
});

// Use standard QueryClient methods
const data = client.getQueryData(['todos']);

When to Use?

Use QueryClient if you need:

  • Customization of query/mutation lifecycle
  • Tracking entity initialization/destruction events
  • Advanced configuration for MobX-powered queries and mutations.

Released under the MIT License.