From e65c450a040a78c166a54d80b764b8375f826a78 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 25 Apr 2022 13:45:05 +0100 Subject: [PATCH 1/4] fix(nuxt): require users to provide a key for useFetch + transform --- packages/nuxt/src/app/composables/fetch.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/nuxt/src/app/composables/fetch.ts b/packages/nuxt/src/app/composables/fetch.ts index 4ff5d0d5a9d..1076055a1b3 100644 --- a/packages/nuxt/src/app/composables/fetch.ts +++ b/packages/nuxt/src/app/composables/fetch.ts @@ -28,6 +28,9 @@ export function useFetch< request: Ref | ReqT | (() => ReqT), opts: UseFetchOptions<_ResT, Transform, PickKeys> = {} ) { + if (process.dev && opts.transform && !opts.key) { + console.warn('[nuxt] You should provide a key for useFetch when using a custom transform function.') + } const key = '$f_' + (opts.key || hash([request, opts])) const _request = computed(() => { let r = request From ab6a93e1755a4b952c2ddd557a74ced67a603396 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 25 Apr 2022 13:50:52 +0100 Subject: [PATCH 2/4] fix: refresh data if it's not in payload --- packages/nuxt/src/app/composables/asyncData.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/app/composables/asyncData.ts b/packages/nuxt/src/app/composables/asyncData.ts index d38608ef4b8..0d15db96926 100644 --- a/packages/nuxt/src/app/composables/asyncData.ts +++ b/packages/nuxt/src/app/composables/asyncData.ts @@ -141,7 +141,7 @@ export function useAsyncData< // Client side if (process.client) { - if (fetchOnServer && nuxt.isHydrating) { + if (fetchOnServer && nuxt.isHydrating && key in nuxt.payload.data) { // 1. Hydration (server: true): no fetch asyncData.pending.value = false } else if (instance && (nuxt.isHydrating || options.lazy)) { From 26cac252e5ad740461c26db2f5cef55326ab6e03 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 26 Apr 2022 16:14:13 +0100 Subject: [PATCH 3/4] Update packages/nuxt/src/app/composables/fetch.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sébastien Chopin --- packages/nuxt/src/app/composables/fetch.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/app/composables/fetch.ts b/packages/nuxt/src/app/composables/fetch.ts index 1076055a1b3..080b5e00d13 100644 --- a/packages/nuxt/src/app/composables/fetch.ts +++ b/packages/nuxt/src/app/composables/fetch.ts @@ -29,7 +29,7 @@ export function useFetch< opts: UseFetchOptions<_ResT, Transform, PickKeys> = {} ) { if (process.dev && opts.transform && !opts.key) { - console.warn('[nuxt] You should provide a key for useFetch when using a custom transform function.') + console.warn('[nuxt] You should provide a key for `useFetch` when using a custom transform function.') } const key = '$f_' + (opts.key || hash([request, opts])) const _request = computed(() => { From ac499f4c7c2fed5319f7009b8a07ea5dfd6817c1 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 27 Apr 2022 12:31:17 +0100 Subject: [PATCH 4/4] fix: remove transform from hash calculation --- packages/nuxt/src/app/composables/fetch.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/app/composables/fetch.ts b/packages/nuxt/src/app/composables/fetch.ts index 080b5e00d13..b994abc44a3 100644 --- a/packages/nuxt/src/app/composables/fetch.ts +++ b/packages/nuxt/src/app/composables/fetch.ts @@ -31,7 +31,7 @@ export function useFetch< if (process.dev && opts.transform && !opts.key) { console.warn('[nuxt] You should provide a key for `useFetch` when using a custom transform function.') } - const key = '$f_' + (opts.key || hash([request, opts])) + const key = '$f_' + (opts.key || hash([request, { ...opts, transform: null }])) const _request = computed(() => { let r = request if (typeof r === 'function') {