From f8f5771646c99d3c0b887498580aca203ce89721 Mon Sep 17 00:00:00 2001 From: Julien Huang <63512348+huang-julien@users.noreply.github.com> Date: Wed, 7 Sep 2022 10:31:11 +0200 Subject: [PATCH] perf(nuxt): cache `createClientOnly` wrapper using weakmap (#7297) --- packages/nuxt/src/app/components/client-only.mjs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/nuxt/src/app/components/client-only.mjs b/packages/nuxt/src/app/components/client-only.mjs index 8cb1320f79..3e0cf41bdd 100644 --- a/packages/nuxt/src/app/components/client-only.mjs +++ b/packages/nuxt/src/app/components/client-only.mjs @@ -18,7 +18,13 @@ export default defineComponent({ } }) +const cache = new WeakMap() + export function createClientOnly (component) { + if (cache.has(component)) { + return cache.get(component) + } + const clone = { ...component } if (clone.render) { @@ -53,5 +59,7 @@ export function createClientOnly (component) { }) } + cache.set(component, clone) + return clone }