2 Commits

Author SHA1 Message Date
Fabians Geikins 7166f2f2a9 fix: in SSR not returning precached data immediately
Publish Nightlies / build (push) Has been cancelled
2026-02-27 13:12:45 +02:00
Fabians Geikins c2f831acf7 fix: remove forced SSR fetch policy 2026-02-26 18:37:28 +02:00
2 changed files with 7 additions and 11 deletions
@@ -280,21 +280,21 @@ export function useQueryImpl<
query: currentDocument,
variables: currentVariables ?? {} as TVariables,
...currentOptions.value,
...(isServer && currentOptions.value?.fetchPolicy !== 'no-cache')
? {
fetchPolicy: 'network-only',
}
: {},
})
startQuerySubscription()
// Make the cache data available to the component immediately
// This prevents SSR hydration mismatches
if (!isServer && (firstStart || !currentOptions.value?.keepPreviousResult) && (currentOptions.value?.fetchPolicy !== 'no-cache' || currentOptions.value.notifyOnNetworkStatusChange)) {
if ((firstStart || !currentOptions.value?.keepPreviousResult) && (currentOptions.value?.fetchPolicy !== 'no-cache' || currentOptions.value.notifyOnNetworkStatusChange)) {
const currentResult = query.value.getCurrentResult(false)
if (!currentResult.loading || currentResult.partial || currentOptions.value?.notifyOnNetworkStatusChange) {
// SSR: Allow reusing cached results
// CSR: Allow showing cached results immediately, but also show loading state if the query is currently loading and not showing partial data
const ssrCheck = isServer && currentOptions.value?.prefetch !== false && !currentResult.loading
const csrCheck = !isServer && (!currentResult.loading || currentResult.partial || currentOptions.value?.notifyOnNetworkStatusChange)
if (ssrCheck || csrCheck) {
onNextResult(currentResult)
ignoreNextResult = !currentResult.loading
}
@@ -30,10 +30,6 @@ export default class SmartQuery extends SmartApollo {
})
}
if (isServer) {
this.options.fetchPolicy = 'network-only'
}
if (!options.manual) {
this.hasDataField = Object.prototype.hasOwnProperty.call(this.vm.$data, key)
if (this.hasDataField) {