# Data Client for Vue > Reactive Data Client: async state management for Vue with normalized, type-safe data from REST, GraphQL, and any other source. Packages: @data-client/vue, @data-client/rest, @data-client/graphql. Using React? See https://dataclient.io/llms.txt ## Core - [Introducing the Reactive Data Client for Vue](https://dataclient.io/vue.md): Building delightful dynamic applications with Vue and more. - [Controller - Typesafe imperative store access](https://dataclient.io/vue/api/Controller.md) - [Snapshot - Safe data access with zero race conditions](https://dataclient.io/vue/api/Snapshot.md) - [TypeScript Types](https://dataclient.io/vue/api/types.md) ## Core › Getting Started - [Agent Skills](https://dataclient.io/vue/getting-started/agent-skills.md) - [Getting Started with Reactive Data Client](https://dataclient.io/vue/getting-started/installation.md) - [Defining Resources for Reactive Data Client](https://dataclient.io/vue/getting-started/resource.md) - [Rendering Asynchronous Data in Vue](https://dataclient.io/vue/getting-started/data-dependency.md) - [Mutating Asynchronous Data in Vue](https://dataclient.io/vue/getting-started/mutations.md): Safe and high performance data mutations without refetching or writing state management. - [Debugging and Inspection](https://dataclient.io/vue/getting-started/debugging.md) ## Core › Concepts - [Entity and Data Normalization](https://dataclient.io/vue/concepts/normalization.md) - [Controlling automatic fetch behavior with declarative Expiry Policies](https://dataclient.io/vue/concepts/expiry-policy.md): When data is considere Fresh, Stale, or Invalid. And how that state affects fetching and rendering. - [Distinguishing recoverable fetch errors in Vue](https://dataclient.io/vue/concepts/error-policy.md): Controlling how errors affect revalidation strategies in Reactive Data Client. - [Validating fetch responses in Vue](https://dataclient.io/vue/concepts/validation.md) - [⚛ Atomic Mutations: Safe, high performance async mutations](https://dataclient.io/vue/concepts/atomic-mutations.md) - [Centralized side-effect orchestration with Vue](https://dataclient.io/vue/concepts/managers.md): Safe programmatic access to the global store. Enables fully extensible and scalable side-effects. - [Performance](https://dataclient.io/vue/concepts/performance.md) ## Core › Guides - [TypeScript Standard Endpoints](https://dataclient.io/vue/guides/custom-protocol.md) ## Core › Guides › Performance - [Aborting Fetch](https://dataclient.io/vue/guides/abort.md) ## Core › Guides › Legacy - [Legacy browser support](https://dataclient.io/vue/guides/legacy-browser.md) ## Core › Composables - [useSuspense() - Simplified data fetching for Vue](https://dataclient.io/vue/api/useSuspense.md): High performance async data rendering without overfetching. useSuspense() is like await for Vue components. - [useController() - Type safe store manipulation in Vue](https://dataclient.io/vue/api/useController.md): Controller provides type-safe methods to access and dispatch actions to the store. - [useCache() - Normalized data store access in Vue](https://dataclient.io/vue/api/useCache.md): Data rendering without the fetch. Access any Endpoint's response. - [useQuery() - Normalized data store access in Vue](https://dataclient.io/vue/api/useQuery.md): Data rendering without the fetch. Access any Schema's memoized store value. - [useLive() - Rendering dynamic data in Vue](https://dataclient.io/vue/api/useLive.md): Async rendering of remotely triggered data mutations. useSuspense() + useSubscription() in one composable. - [useSubscription() - Updating frequent data changes in Vue](https://dataclient.io/vue/api/useSubscription.md): Keeps data fresh, but only when component is active. Supports polling, websockets, and SSE. - [useFetch() - Declarative fetch triggers for Vue](https://dataclient.io/vue/api/useFetch.md): Fetch an Endpoint if it is not in cache or stale. Returns a Ref to the fetch promise, refetching on invalidation. - [useDLE() - [D]ata [L]oading [E]rror Vue State](https://dataclient.io/vue/api/useDLE.md): High performance async data rendering without overfetching. With fetch meta data. - [useLoading() - Turn any promise into Vue State](https://dataclient.io/vue/api/useLoading.md): Track loading and error state of any async function. - [useDebounce() - Declarative value delays for Vue](https://dataclient.io/vue/api/useDebounce.md): Delays updating the parameters by debouncing. Avoid excessive network requests due to quick parameter changes like typeaheads. ## Core › Managers - [Manager - Powerful middlewares with global store knowledge](https://dataclient.io/vue/api/Manager.md) - [Actions communicate UI events to store updates](https://dataclient.io/vue/api/Actions.md) - [getDefaultManagers() - Configuring managers for DataClientPlugin](https://dataclient.io/vue/api/getDefaultManagers.md) - [NetworkManager - Orchestrating efficient race-condition free fetching](https://dataclient.io/vue/api/NetworkManager.md) - [SubscriptionManager](https://dataclient.io/vue/api/SubscriptionManager.md) - [PollingSubscription](https://dataclient.io/vue/api/PollingSubscription.md) - [DevToolsManager](https://dataclient.io/vue/api/DevToolsManager.md) - [LogoutManager - Handling 401s and other deauthorization triggers](https://dataclient.io/vue/api/LogoutManager.md) ## Core › Testing - [Fixtures and Interceptors: declarative data mocking for tests and stories](https://dataclient.io/vue/api/Fixtures.md): Fixtures and Interceptors allow universal data mocking without the need for monkeypatching fetch behaviors. - [mockInitialState()](https://dataclient.io/vue/api/mockInitialState.md) ## REST - [Using REST APIs with Reactive Data Client](https://dataclient.io/rest.md): Writing TypeScript REST APIs quickly using path templates and Schemas. ## REST › Networking Guides - [Pagination of REST data with Reactive Data Client](https://dataclient.io/rest/guides/pagination.md) - [Rest Authentication](https://dataclient.io/rest/guides/auth.md) - [100x faster React with Optimistic Updates](https://dataclient.io/rest/guides/optimistic-updates.md) - [Transforming data on fetch](https://dataclient.io/rest/guides/network-transform.md) - [Mocking unfinished endpoints](https://dataclient.io/rest/guides/mocking-unfinished.md) - [Aborting Fetch](https://dataclient.io/rest/guides/abort.md) - [Django Auth and CSRF handling | Reactive Data Client](https://dataclient.io/rest/guides/django.md) ## REST › Data Guides - [Sorting client-side REST data efficiently | Data Client](https://dataclient.io/rest/guides/sorting-client-side.md) - [Simplified relational data rendering in React](https://dataclient.io/rest/guides/relational-data.md) - [Mutation Side-Effects](https://dataclient.io/rest/guides/side-effects.md) - [Computed Properties](https://dataclient.io/rest/guides/computed-properties.md) - [Partial Entities](https://dataclient.io/rest/guides/partial-entities.md) ## REST › Endpoint API - [RestEndpoint - Strongly typed path-based HTTP API definitions](https://dataclient.io/rest/api/RestEndpoint.md): Strongly typed path-based extensible HTTP API definitions. - [Endpoint - Strongly typed API definitions](https://dataclient.io/rest/api/Endpoint.md) - [Define TypeScript REST API Resources at Scale](https://dataclient.io/rest/api/resource.md): Resources are a collection of RestEndpoints that operate on a common data by sharing a schema - [hookifyResource() - Collection of CRUD hook Endpoints](https://dataclient.io/rest/api/hookifyResource.md) ## REST › Schema API - [Thinking in Schemas](https://dataclient.io/rest/api/schema.md): Declarative TypeScript data definitions. Mutable dynamic data applications without state management code. - [Entity - Declarative unique objects for React](https://dataclient.io/rest/api/Entity.md) - [EntityMixin - Declarative unique objects for pre-existing classes](https://dataclient.io/rest/api/EntityMixin.md) - [schema.Object - Declarative Object data for React](https://dataclient.io/rest/api/Object.md) - [schema.Array - Declarative list data for React](https://dataclient.io/rest/api/Array.md) - [Values Schema - Declarative map data for React](https://dataclient.io/rest/api/Values.md) - [Collection Schema - Mutable Lists and Maps](https://dataclient.io/rest/api/Collection.md) - [Union Schema - Declarative polymorphic data for React](https://dataclient.io/rest/api/Union.md) - [Scalar Schema - Lens-Dependent Entity Fields](https://dataclient.io/rest/api/Scalar.md) - [Query Schema - Programmatic memoized store access](https://dataclient.io/rest/api/Query.md) - [All Schema - Access every entity in the Reactive Data Client store](https://dataclient.io/rest/api/All.md) - [Invalidate Schema - Invalidating Entities](https://dataclient.io/rest/api/Invalidate.md) - [Lazy Schema - Deferred Relationship Denormalization](https://dataclient.io/rest/api/Lazy.md) - [validateRequired](https://dataclient.io/rest/api/validateRequired.md) - [SchemaSimple - Define data processing protocols](https://dataclient.io/rest/api/SchemaSimple.md): Build custom schemas for normalization, denormalization, and query keys. ## REST › Migration Guides - [Migrating from Axios to Reactive Data Client](https://dataclient.io/rest/guides/axios-migration.md) ## GraphQL - [GraphQL Usage with Reactive Data Client](https://dataclient.io/graphql.md) - [GraphQL Authentication patterns for Reactive Data Client](https://dataclient.io/graphql/auth.md) ## GraphQL › GraphQL API - [GQLEndpoint](https://dataclient.io/graphql/api/GQLEndpoint.md) - [GQLEntity](https://dataclient.io/graphql/api/GQLEntity.md)