fix(slots): should update compiled dynamic slots
This commit is contained in:
parent
da6e64831a
commit
84440780f9
@ -123,13 +123,18 @@ export const updateSlots = (
|
||||
let deletionComparisonTarget = EMPTY_OBJ
|
||||
if (vnode.shapeFlag & ShapeFlags.SLOTS_CHILDREN) {
|
||||
if ((children as RawSlots)._ === 1) {
|
||||
if (!(vnode.patchFlag & PatchFlags.DYNAMIC_SLOTS)) {
|
||||
// compiled AND static. this means we can skip removal of potential
|
||||
// stale slots
|
||||
// compiled slots.
|
||||
if (
|
||||
// bail on dynamic slots (v-if, v-for, reference of scope variables)
|
||||
!(vnode.patchFlag & PatchFlags.DYNAMIC_SLOTS) &&
|
||||
// bail on HRM updates
|
||||
!(__DEV__ && instance.parent && instance.parent.renderUpdated)
|
||||
) {
|
||||
// compiled AND static.
|
||||
// no need to update, and skip stale slots removal.
|
||||
needDeletionCheck = false
|
||||
}
|
||||
// HMR force update
|
||||
if (__DEV__ && instance.parent && instance.parent.renderUpdated) {
|
||||
} else {
|
||||
// compiled but dynamic - update slots, but skip normalization.
|
||||
extend(slots, children as Slots)
|
||||
}
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user