From 6593e9272dea7585cb72b925beafad2020c623db Mon Sep 17 00:00:00 2001 From: Masatsugu Hosoi Date: Sun, 23 May 2021 23:47:02 +0900 Subject: [PATCH] fix: SSR active, dont use global active var due to runInNewContext: false (#668) Meta is not reflected in the second page rendering. Co-authored-by: hosoi-appland Co-authored-by: Pim --- src/manager.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/manager.ts b/src/manager.ts index 22a3562..1ee1f01 100644 --- a/src/manager.ts +++ b/src/manager.ts @@ -23,8 +23,6 @@ import type { export const ssrAttribute = 'data-vm-ssr' -export const active: MetaActive = reactive({}) - export function addVnode (isSSR: boolean, teleports: MetaTeleports, to: string, vnodes: VNode | Array): void { const nodes = (isArray(vnodes) ? vnodes : [vnodes]) as Array @@ -84,6 +82,7 @@ export class MetaManager { return resolver.resolve(options, contexts, active, key, pathSegments) } + const active: MetaActive = reactive({}) const mergedObject = createMergedObject(resolve, active) // TODO: validate resolver @@ -95,7 +94,7 @@ export class MetaManager { app.component('Metainfo', Metainfo) app.config.globalProperties.$metaManager = this - app.provide(metaActiveKey, active) + app.provide(metaActiveKey, this.target.context.active) } addMeta (metadata: MetaSource, vm?: ComponentInternalInstance): MetaProxy { @@ -170,6 +169,7 @@ export class MetaManager { } render ({ slots }: { slots?: Slots } = {}): VNode[] { + const active = this.target.context.active; // TODO: clean this method const { isSSR } = this