diff --git a/packages/compiler-core/src/transforms/hoistStatic.ts b/packages/compiler-core/src/transforms/hoistStatic.ts index da44a1ecb..968fc5912 100644 --- a/packages/compiler-core/src/transforms/hoistStatic.ts +++ b/packages/compiler-core/src/transforms/hoistStatic.ts @@ -176,7 +176,17 @@ function hasCachedProps(node: PlainElementNode): boolean { if (props && props.type === NodeTypes.JS_OBJECT_EXPRESSION) { const { properties } = props for (let i = 0; i < properties.length; i++) { - if (properties[i].value.type === NodeTypes.JS_CACHE_EXPRESSION) { + const val = properties[i].value + if (val.type === NodeTypes.JS_CACHE_EXPRESSION) { + return true + } + // merged event handlers + if ( + val.type === NodeTypes.JS_ARRAY_EXPRESSION && + val.elements.some( + e => !isString(e) && e.type === NodeTypes.JS_CACHE_EXPRESSION + ) + ) { return true } }