Hooks for fetching, caching and updating asynchronous data in Vue.
Support for Vue 2.x via vue-demi
Visit https://tanstack.com/query/latest/docs/vue/overview
Install vue-query
$ npm i @tanstack/vue-query
or
$ pnpm add @tanstack/vue-query
or
$ yarn add @tanstack/vue-query
or
$ bun add @tanstack/vue-query
If you are using Vue 2.6, make sure to also setup @vue/composition-api
Initialize Vue Query via VueQueryPlugin
import { createApp } from 'vue'
import { VueQueryPlugin } from '@tanstack/vue-query'
import App from './App.vue'
createApp(App).use(VueQueryPlugin).mount('#app')
Use query
import { defineComponent } from 'vue'
import { useQuery } from '@tanstack/vue-query'
export default defineComponent({
name: 'MyComponent',
setup() {
const query = useQuery({ queryKey: ['todos'], queryFn: getTodos })
return {
query,
}
},
})
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({
queryKey: ['todos', id],
queryFn: () => getTodos(id),
enabled,
})