mirror of https://github.com/vuejs/core.git
				
				
				
			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…
	
		Reference in New Issue