fix(compiler-core): always compile Teleport and Suspense as blocks
This commit is contained in:
parent
b3b65b4058
commit
fbf865d9d4
@ -35,7 +35,8 @@ import {
|
||||
MERGE_PROPS,
|
||||
TO_HANDLERS,
|
||||
TELEPORT,
|
||||
KEEP_ALIVE
|
||||
KEEP_ALIVE,
|
||||
SUSPENSE
|
||||
} from '../runtimeHelpers'
|
||||
import {
|
||||
getInnerRange,
|
||||
@ -89,6 +90,8 @@ export const transformElement: NodeTransform = (node, context) => {
|
||||
let shouldUseBlock =
|
||||
// dynamic component may resolve to plain elements
|
||||
isDynamicComponent ||
|
||||
vnodeTag === TELEPORT ||
|
||||
vnodeTag === SUSPENSE ||
|
||||
(!isComponent &&
|
||||
// <svg> and <foreignObject> must be forced into blocks so that block
|
||||
// updates inside get proper isSVG flag at runtime. (#639, #643)
|
||||
|
@ -411,11 +411,7 @@ function _createVNode(
|
||||
// the EVENTS flag is only for hydration and if it is the only flag, the
|
||||
// vnode should not be considered dynamic due to handler caching.
|
||||
patchFlag !== PatchFlags.HYDRATE_EVENTS &&
|
||||
(patchFlag > 0 ||
|
||||
shapeFlag & ShapeFlags.SUSPENSE ||
|
||||
shapeFlag & ShapeFlags.TELEPORT ||
|
||||
shapeFlag & ShapeFlags.STATEFUL_COMPONENT ||
|
||||
shapeFlag & ShapeFlags.FUNCTIONAL_COMPONENT)
|
||||
(patchFlag > 0 || shapeFlag & ShapeFlags.COMPONENT)
|
||||
) {
|
||||
currentBlock.push(vnode)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user