Skip to content

Commit

Permalink
chore: improve code
Browse files Browse the repository at this point in the history
chore: improve code

chore: improve code

chore: improve code

chore: improve code
  • Loading branch information
edison1105 committed Oct 22, 2023
1 parent 695a02f commit d36f2f3
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 15 deletions.
20 changes: 9 additions & 11 deletions packages/runtime-core/src/hydration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { ComponentInternalInstance } from './component'
import { invokeDirectiveHook } from './directives'
import { warn } from './warning'
import { PatchFlags, ShapeFlags, isReservedProp, isOn } from '@vue/shared'
import { RendererInternals } from './renderer'
import { needTransition, RendererInternals } from './renderer'
import { setRef } from './rendererTemplateRef'
import {
SuspenseImpl,
Expand Down Expand Up @@ -374,22 +374,20 @@ export function createHydrationFunctions(
let needCallTransitionHooks = false
if (isTemplateNode(el)) {
needCallTransitionHooks =
(!parentSuspense ||
(parentSuspense && !parentSuspense.pendingBranch)) &&
transition &&
!transition.persisted &&
parentComponent?.vnode.props?.appear
needTransition(parentSuspense, transition) &&
parentComponent &&
parentComponent.vnode.props &&
parentComponent.vnode.props.appear

const content = (el as HTMLTemplateElement).content
.firstChild as Element
needCallTransitionHooks && transition!.beforeEnter(content)

vnode.el = content
dirs && invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount')

// replace <template> node with inner child
el = replaceNode(content, el, parentComponent) as Element
} else if (dirs) {
vnode.el = el = replaceNode(content, el, parentComponent) as Element
}

if (dirs) {
invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount')
}

Expand Down
17 changes: 13 additions & 4 deletions packages/runtime-core/src/renderer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ import { initFeatureFlags } from './featureFlags'
import { isAsyncWrapper } from './apiAsyncComponent'
import { isCompatEnabled } from './compat/compatConfig'
import { DeprecationTypes } from './compat/compatConfig'
import { TransitionHooks } from './components/BaseTransition'

export interface Renderer<HostElement = RendererElement> {
render: RootRenderFunction<HostElement>
Expand Down Expand Up @@ -701,10 +702,7 @@ function baseCreateRenderer(
}
// #1583 For inside suspense + suspense not resolved case, enter hook should call when suspense resolved
// #1689 For inside suspense + suspense resolved case, just call it
const needCallTransitionHooks =
(!parentSuspense || (parentSuspense && !parentSuspense.pendingBranch)) &&
transition &&
!transition.persisted
const needCallTransitionHooks = needTransition(parentSuspense, transition)
if (needCallTransitionHooks) {
transition!.beforeEnter(el)
}
Expand Down Expand Up @@ -2365,6 +2363,17 @@ function toggleRecurse(
effect.allowRecurse = update.allowRecurse = allowed
}

export function needTransition(
parentSuspense: SuspenseBoundary | null,
transition: TransitionHooks | null
) {
return (
(!parentSuspense || (parentSuspense && !parentSuspense.pendingBranch)) &&
transition &&
!transition.persisted
)
}

/**
* #1156
* When a component is HMR-enabled, we need to make sure that all static nodes
Expand Down

0 comments on commit d36f2f3

Please sign in to comment.