10000 fix(nuxt): trigger immediate DOM update on `page:finish` (#22566) · nuxt/nuxt@89ad88b · GitHub
[go: up one dir, main page]

Skip to content

Commit 89ad88b

Browse files
authored
fix(nuxt): trigger immediate DOM update on page:finish (#22566)
1 parent 20efac7 commit 89ad88b

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

packages/nuxt/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
"@nuxt/vite-builder": "workspace:../vite",
6161
"@unhead/ssr": "^1.2.2",
6262
"@unhead/vue": "^1.2.2",
63+
"@unhead/dom": "^1.2.2",
6364
"@vue/shared": "^3.3.4",
6465
"acorn": "8.10.0",
6566
"c12": "^1.4.2",
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { createHead as createClientHead } from '@unhead/vue'
2+
import { renderDOMHead } from '@unhead/dom'
23
import { defineNuxtPlugin } from '#app/nuxt'
34

45
export default defineNuxtPlugin({
@@ -11,17 +12,16 @@ export default defineNuxtPlugin({
1112
if (import.meta.client) {
1213
// pause dom updates until page is ready and between page transitions
1314
let pauseDOMUpdates = true
14-
const unpauseDom = () => {
15+
const syncHead = async () => {
1516
pauseDOMUpdates = false
16-
// trigger the debounced DOM update
17-
head.hooks.callHook('entries:updated', head)
17+
await renderDOMHead(head)
1818
}
1919
head.hooks.hook('dom:beforeRender', (context) => { context.shouldRender = !pauseDOMUpdates })
2020
nuxtApp.hooks.hook('page:start', () => { pauseDOMUpdates = true })
2121
// wait for new page before unpausing dom updates (triggered after suspense resolved)
22-
nuxtApp.hooks.hook('page:finish', unpauseDom)
22+
nuxtApp.hooks.hook('page:finish', syncHead)
2323
// unpause the DOM once the mount suspense is resolved
24-
nuxtApp.hooks.hook('app:suspense:resolve', unpauseDom)
24+
nuxtApp.hooks.hook('app:suspense:resolve', syncHead)
2525
}
2626
}
2727
})

pnpm-lock.yaml

Lines changed: 5 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)
0