Skip to content

Commit 39ca077

Browse files
committed
refactor: remove manual TransitionGroup update triggering and the group flag from transition hooks.
1 parent becad96 commit 39ca077

File tree

4 files changed

+2
-35
lines changed

4 files changed

+2
-35
lines changed

packages/runtime-vapor/src/apiCreateFor.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ import {
3939
isLastInsertion,
4040
resetInsertionState,
4141
} from './insertionState'
42-
import { triggerTransitionGroupUpdate } from './components/TransitionGroup'
4342

4443
class ForBlock extends VaporFragment {
4544
scope: EffectScope | undefined
@@ -131,12 +130,6 @@ export const createFor = (
131130
newBlocks = new Array(newLength)
132131
let isFallback = false
133132

134-
// trigger TransitionGroup update hooks
135-
const transitionHooks = frag.$transition
136-
if (transitionHooks && transitionHooks.group && isMounted) {
137-
triggerTransitionGroupUpdate(transitionHooks)
138-
}
139-
140133
const prevSub = setActiveSub()
141134

142135
if (!isMounted) {

packages/runtime-vapor/src/block.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ export interface VaporTransitionHooks extends TransitionHooks {
2828
instance: VaporComponentInstance
2929
// mark transition hooks as disabled
3030
disabled?: boolean
31-
// indicates a group transition
32-
group?: boolean
3331
}
3432

3533
export interface TransitionOptions {

packages/runtime-vapor/src/components/Transition.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ export function applyTransitionHooks(
208208
return hooks
209209
}
210210

211-
const { props, instance, state, delayedLeave, group } = hooks
211+
const { props, instance, state, delayedLeave } = hooks
212212
let resolvedHooks = resolveTransitionHooks(
213213
child,
214214
props,
@@ -217,7 +217,6 @@ export function applyTransitionHooks(
217217
hooks => (resolvedHooks = hooks as VaporTransitionHooks),
218218
)
219219
resolvedHooks.delayedLeave = delayedLeave
220-
resolvedHooks.group = group
221220
child.$transition = resolvedHooks
222221
if (isFrag) setTransitionHooksOnFragment(block, resolvedHooks)
223222

packages/runtime-vapor/src/components/TransitionGroup.ts

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@ import {
1010
hasCSSTransform,
1111
onBeforeUpdate,
1212
onUpdated,
13-
queuePostFlushCb,
1413
resolveTransitionProps,
1514
useTransitionState,
1615
warn,
1716
} from '@vue/runtime-dom'
18-
import { extend, invokeArrayFns, isArray } from '@vue/shared'
17+
import { extend, isArray } from '@vue/shared'
1918
import {
2019
type Block,
2120
type TransitionBlock,
@@ -125,7 +124,6 @@ export const VaporTransitionGroup: ObjectVaporComponent = decorate({
125124
props: cssTransitionProps,
126125
state,
127126
instance,
128-
group: true,
129127
} as VaporTransitionHooks)
130128

131129
children = getTransitionBlocks(slottedBlock)
@@ -139,7 +137,6 @@ export const VaporTransitionGroup: ObjectVaporComponent = decorate({
139137
state,
140138
instance!,
141139
)
142-
hooks.group = true
143140
setTransitionHooks(child, hooks)
144141
} else if (__DEV__) {
145142
warn(`<transition-group> children must be keyed`)
@@ -216,23 +213,3 @@ function getFirstConnectedChild(
216213
if (el.isConnected) return el
217214
}
218215
}
219-
220-
/**
221-
* The implementation of TransitionGroup relies on the onBeforeUpdate and onUpdated hooks.
222-
* However, when the slot content of TransitionGroup updates, it does not trigger the
223-
* onBeforeUpdate and onUpdated hooks. Therefore, it is necessary to manually trigger
224-
* the TransitionGroup update hooks to ensure its proper work.
225-
*/
226-
export function triggerTransitionGroupUpdate(
227-
transition: VaporTransitionHooks,
228-
): void {
229-
const { instance } = transition
230-
if (!instance.isUpdating) {
231-
instance.isUpdating = true
232-
if (instance.bu) invokeArrayFns(instance.bu)
233-
queuePostFlushCb(() => {
234-
instance.isUpdating = false
235-
if (instance.u) invokeArrayFns(instance.u)
236-
})
237-
}
238-
}

0 commit comments

Comments
 (0)