From 633bc2958544b8c0570611ff69c6a5e118a66638 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 May 2023 13:05:20 +0100 Subject: [PATCH 1/4] fix(nuxt): ignore `refresh` calls when hydrating (if data is present) --- 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 d4ac4e49ec3d..16655e32eda2 100644 --- a/packages/nuxt/src/app/composables/asyncData.ts +++ b/packages/nuxt/src/app/composables/asyncData.ts @@ -135,7 +135,7 @@ export function useAsyncData< (nuxt._asyncDataPromises[key] as any).cancelled = true } // Avoid fetching same key that is already fetched - if (opts._initial && hasCachedData()) { + if ((opts._initial || nuxt.isHydrating) && hasCachedData()) { return getCachedData() } asyncData.pending.value = true From e2e6ace42f6efd94699b028bb1e451e441224121 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 May 2023 13:07:12 +0100 Subject: [PATCH 2/4] fix: allow overriding `_initial` --- 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 16655e32eda2..b7c401aaa3d6 100644 --- a/packages/nuxt/src/app/composables/asyncData.ts +++ b/packages/nuxt/src/app/composables/asyncData.ts @@ -135,7 +135,7 @@ export function useAsyncData< (nuxt._asyncDataPromises[key] as any).cancelled = true } // Avoid fetching same key that is already fetched - if ((opts._initial || nuxt.isHydrating) && hasCachedData()) { + if ((opts._initial || (nuxt.isHydrating && opts._initial !== false)) && hasCachedData()) { return getCachedData() } asyncData.pending.value = true From 6229150bcf0598b090bc442e1f609f815bcb33f7 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 May 2023 13:16:50 +0100 Subject: [PATCH 3/4] test: update fixture to pass `_initial: false` --- test/fixtures/basic/pages/useAsyncData/override.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fixtures/basic/pages/useAsyncData/override.vue b/test/fixtures/basic/pages/useAsyncData/override.vue index 3d0328c43ec6..d69e638d9897 100644 --- a/test/fixtures/basic/pages/useAsyncData/override.vue +++ b/test/fixtures/basic/pages/useAsyncData/override.vue @@ -22,7 +22,7 @@ if (process.client && (count !== 0 || data.value !== 1)) { } timeout = 0 -await refresh() +await refresh({ _initial: false }) if (process.client && (count !== 1 || data.value !== 1)) { throw new Error('override should execute') From 2dbd2b4426d0aba6e2f6afb8e6ed7781775baf23 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 May 2023 13:42:50 +0100 Subject: [PATCH 4/4] =?UTF-8?q?test:=20also=20update=20other=20line=20?= =?UTF-8?q?=F0=9F=99=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/fixtures/basic/pages/useAsyncData/override.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fixtures/basic/pages/useAsyncData/override.vue b/test/fixtures/basic/pages/useAsyncData/override.vue index d69e638d9897..891f0339c8c5 100644 --- a/test/fixtures/basic/pages/useAsyncData/override.vue +++ b/test/fixtures/basic/pages/useAsyncData/override.vue @@ -15,7 +15,7 @@ if (count || data.value !== 1) { } timeout = 100 -const p = refresh({ dedupe: true }) +const p = refresh({ dedupe: true, _initial: false }) if (process.client && (count !== 0 || data.value !== 1)) { throw new Error('count should start at 0')