DamianOsipiuk/vue-query

Hooks for fetching, caching and updating asynchronous data in Vue

TypeScript

1,111

217 commits

updated Jun 27, 2023

See the code

README

Vue Query logo

npm version npm license bundle size npm

build status codecov

⚠️ Package migration ⚠️

This package was migrated to be a part of https://github.com/TanStack/query.

If you are still on v1 make sure to follow migration guide first and then switch to @tanstack/vue-query.

If you are already on v2, just swap vue-query for @tanstack/vue-query in both of your package.json and import statements. Everything should still work as before.

Vue Query

Hooks for fetching, caching and updating asynchronous data in Vue.

Support for Vue 2.x via vue-demi

Based on react-query

Documentation

Visit https://vue-query.vercel.app

Visit https://vue-query-next.vercel.app for V2 documentation

For topics not covered in vue-query docs visit react-query docs as most of the concepts and APIs are the same.

Quick Features

  • Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)
  • Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)
  • Parallel + Dependent Queries
  • Mutations + Reactive Query Refetching
  • Multi-layer Cache + Automatic Garbage Collection
  • Paginated + Cursor-based Queries
  • Load-More + Infinite Scroll Queries w/ Scroll Recovery
  • Request Cancellation
  • (experimental) Suspense + Fetch-As-You-Render Query Prefetching
  • (experimental) SSR support
  • Dedicated Devtools
  • npm bundle size (depending on features imported)

Quick Start

  1. Install vue-query

    npm install vue-query
    # or
    yarn add vue-query
    

    If you are using Vue 2.x, make sure to also setup @vue/composition-api

  2. Initialize Vue Query via VueQueryPlugin

    import { createApp } from "vue";
    import { VueQueryPlugin } from "vue-query";
    
    import App from "./App.vue";
    
    createApp(App).use(VueQueryPlugin).mount("#app");
    
  3. Use query

    import { defineComponent } from "vue";
    import { useQuery } from "vue-query";
    
    export default defineComponent({
      name: "MyComponent",
      setup() {
        const query = useQuery("todos", getTodos);
    
        return {
          query,
        };
      },
    });
    
  4. If you need to update options on your query dynamically, make sure to pass them as reactive variables

    const id = ref(1);
    const enabled = ref(false);
    
    const query = useQuery(["todos", id], () => getTodos(id), { enabled });
    
async
cache
fetch
graphql
hooks
query
rest
stale
stale-while-revalidate
vue

DamianOsipiuk/vue-query

Hooks for fetching, caching and updating asynchronous data in Vue

TypeScript

1,111

217 commits

updated Jun 27, 2023

See the code

README

Vue Query logo

npm version npm license bundle size npm

build status codecov

⚠️ Package migration ⚠️

This package was migrated to be a part of https://github.com/TanStack/query.

If you are still on v1 make sure to follow migration guide first and then switch to @tanstack/vue-query.

If you are already on v2, just swap vue-query for @tanstack/vue-query in both of your package.json and import statements. Everything should still work as before.

Vue Query

Hooks for fetching, caching and updating asynchronous data in Vue.

Support for Vue 2.x via vue-demi

Based on react-query

Documentation

Visit https://vue-query.vercel.app

Visit https://vue-query-next.vercel.app for V2 documentation

For topics not covered in vue-query docs visit react-query docs as most of the concepts and APIs are the same.

Quick Features

  • Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)
  • Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)
  • Parallel + Dependent Queries
  • Mutations + Reactive Query Refetching
  • Multi-layer Cache + Automatic Garbage Collection
  • Paginated + Cursor-based Queries
  • Load-More + Infinite Scroll Queries w/ Scroll Recovery
  • Request Cancellation
  • (experimental) Suspense + Fetch-As-You-Render Query Prefetching
  • (experimental) SSR support
  • Dedicated Devtools
  • npm bundle size (depending on features imported)

Quick Start

  1. Install vue-query

    npm install vue-query
    # or
    yarn add vue-query
    

    If you are using Vue 2.x, make sure to also setup @vue/composition-api

  2. Initialize Vue Query via VueQueryPlugin

    import { createApp } from "vue";
    import { VueQueryPlugin } from "vue-query";
    
    import App from "./App.vue";
    
    createApp(App).use(VueQueryPlugin).mount("#app");
    
  3. Use query

    import { defineComponent } from "vue";
    import { useQuery } from "vue-query";
    
    export default defineComponent({
      name: "MyComponent",
      setup() {
        const query = useQuery("todos", getTodos);
    
        return {
          query,
        };
      },
    });
    
  4. If you need to update options on your query dynamically, make sure to pass them as reactive variables

    const id = ref(1);
    const enabled = ref(false);
    
    const query = useQuery(["todos", id], () => getTodos(id), { enabled });
    
async
cache
fetch
graphql
hooks
query
rest
stale
stale-while-revalidate
vue

Project health

Overall

3.6/10

Maintained

0/10

Code review

2/10
OpenSSF Scorecard

Latest release

1.26.0 · Aug 22, 2022

Releases this year

0

Significant stargazers

Thorsten Lünborg

2,582 followers · starred Sep 2021

Romain Lanz

1,460 followers · starred Nov 2021

Hans Knöchel

399 followers · starred Jul 2022

zhangenming

13 followers · starred Aug 2022