fix: apply subsequent meta changes (#3271)

This commit is contained in:
Dizzy 2022-02-16 17:34:06 -04:00 committed by GitHub
parent 77aeaa3288
commit ad52b795e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -7,7 +7,12 @@ export default defineNuxtPlugin((nuxtApp) => {
const head = createHead()
nuxtApp.vueApp.use(head)
nuxtApp.hooks.hookOnce('app:mounted', () => { watchEffect(() => head.updateDOM()) })
let headReady = false
nuxtApp.hooks.hookOnce('app:mounted', () => {
watchEffect(() => { head.updateDOM() })
headReady = true
})
nuxtApp._useMeta = (meta: MetaObject) => {
const headObj = ref(meta as any)
@ -15,11 +20,16 @@ export default defineNuxtPlugin((nuxtApp) => {
if (process.server) { return }
if (headReady) {
watchEffect(() => { head.updateDOM() })
}
const vm = getCurrentInstance()
if (!vm) { return }
onBeforeUnmount(() => {
head.removeHeadObjs(headObj)
head.updateDOM()
})
}