Skip to content

Commit 3e9cf9a

Browse files
committed
docs: update nuxt3 example
1 parent d125f55 commit 3e9cf9a

File tree

4 files changed

+26
-29
lines changed

4 files changed

+26
-29
lines changed

docs/guides/ssr.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,35 +7,35 @@ Vue Query supports prefetching multiple queries on the server and then _dehydrat
77
First create `vue-query.ts` file in your `plugins` directory with the following content:
88

99
```ts
10-
import {
11-
VueQueryPlugin,
12-
VueQueryPluginOptions,
13-
QueryClient,
14-
hydrate,
15-
dehydrate,
16-
} from "vue-query";
17-
18-
export default (nuxt) => {
10+
import type { DehydratedState, VueQueryPluginOptions } from "vue-query";
11+
import { VueQueryPlugin, QueryClient, hydrate, dehydrate } from "vue-query";
12+
// Nuxt 3 app aliases
13+
import { useState } from "#app";
14+
15+
export default defineNuxtPlugin((nuxt) => {
16+
const vueQueryState = useState<DehydratedState | null>("vue-query");
17+
1918
// Modify your Vue Query global settings here
2019
const queryClient = new QueryClient({
21-
defaultOptions: { queries: { staleTime: 1000 } },
20+
defaultOptions: { queries: { staleTime: 5000 } },
2221
});
2322
const options: VueQueryPluginOptions = { queryClient };
2423

2524
nuxt.vueApp.use(VueQueryPlugin, options);
2625

2726
if (process.server) {
2827
nuxt.hooks.hook("app:rendered", () => {
29-
nuxt.nuxtState["vue-query"] = dehydrate(queryClient);
28+
vueQueryState.value = dehydrate(queryClient);
3029
});
3130
}
3231

3332
if (process.client) {
3433
nuxt.hooks.hook("app:created", () => {
35-
hydrate(queryClient, nuxt.nuxtState["vue-query"]);
34+
hydrate(queryClient, vueQueryState.value);
3635
});
3736
}
38-
};
37+
});
38+
3939
```
4040

4141
Now you are ready to prefetch some data in your pages with `onServerPrefetch`.
@@ -67,7 +67,7 @@ import { VueQueryPlugin, QueryClient, hydrate } from "vue-query";
6767
export default (context) => {
6868
// Modify your Vue Query global settings here
6969
const queryClient = new QueryClient({
70-
defaultOptions: { queries: { staleTime: 1000 } },
70+
defaultOptions: { queries: { staleTime: 5000 } },
7171
});
7272
const options = { queryClient };
7373

examples/nuxt3-simple/app.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const fetcher = async () =>
1010
response.json()
1111
);
1212
13-
const { data, suspense } = useQuery("test", fetcher);
13+
const { data, suspense } = useQuery(["test"], fetcher);
1414
1515
await suspense();
1616
</script>

examples/nuxt3-simple/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"start": "node .output/server/index.mjs"
77
},
88
"devDependencies": {
9-
"nuxt": "npm:nuxt3@latest"
9+
"nuxt": "^3.0.0-rc.8"
1010
},
1111
"dependencies": {
1212
"vue-query": ">=1.0.0"
Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
import {
2-
VueQueryPlugin,
3-
VueQueryPluginOptions,
4-
QueryClient,
5-
hydrate,
6-
dehydrate,
7-
} from "vue-query";
1+
import type { DehydratedState, VueQueryPluginOptions } from "vue-query";
2+
import { VueQueryPlugin, QueryClient, hydrate, dehydrate } from "vue-query";
3+
// Nuxt 3 app aliases
4+
import { useState } from "#app";
5+
6+
export default defineNuxtPlugin((nuxt) => {
7+
const vueQueryState = useState<DehydratedState | null>("vue-query");
88

9-
export default (nuxt) => {
109
// Modify your Vue Query global settings here
1110
const queryClient = new QueryClient({
1211
defaultOptions: { queries: { staleTime: 5000 } },
@@ -15,17 +14,15 @@ export default (nuxt) => {
1514

1615
nuxt.vueApp.use(VueQueryPlugin, options);
1716

18-
// @ts-expect-error Nuxt process variable
1917
if (process.server) {
2018
nuxt.hooks.hook("app:rendered", () => {
21-
nuxt.nuxtState["vue-query"] = dehydrate(queryClient);
19+
vueQueryState.value = dehydrate(queryClient);
2220
});
2321
}
2422

25-
// @ts-expect-error Nuxt process variable
2623
if (process.client) {
2724
nuxt.hooks.hook("app:created", () => {
28-
hydrate(queryClient, nuxt.nuxtState["vue-query"]);
25+
hydrate(queryClient, vueQueryState.value);
2926
});
3027
}
31-
};
28+
});

0 commit comments

Comments
 (0)