refactor: rename transition components

This commit is contained in:
Evan You
2019-11-24 16:00:46 -05:00
parent bdafa1dfc4
commit a834807942
7 changed files with 35 additions and 26 deletions

View File

@@ -69,8 +69,8 @@ export type ExtractPropTypes<
: { [K in string]: any }
const enum BooleanFlags {
shouldCast = '1',
shouldCastTrue = '2'
shouldCast,
shouldCastTrue
}
type NormalizedProp =

View File

@@ -10,7 +10,7 @@ import { toRaw } from '@vue/reactivity'
import { callWithAsyncErrorHandling, ErrorCodes } from '../errorHandling'
import { ShapeFlags } from '../shapeFlags'
export interface TransitionProps {
export interface BaseTransitionProps {
mode?: 'in-out' | 'out-in' | 'default'
appear?: boolean
@@ -46,9 +46,9 @@ interface PendingCallbacks {
leave?: (cancelled?: boolean) => void
}
const TransitionImpl = {
const BaseTransitionImpl = {
name: `BaseTransition`,
setup(props: TransitionProps, { slots }: SetupContext) {
setup(props: BaseTransitionProps, { slots }: SetupContext) {
const instance = getCurrentInstance()!
const pendingCallbacks: PendingCallbacks = {}
let isLeaving = false
@@ -138,7 +138,7 @@ const TransitionImpl = {
}
if (__DEV__) {
;(TransitionImpl as ComponentOptions).props = {
;(BaseTransitionImpl as ComponentOptions).props = {
mode: String,
appear: Boolean,
persisted: Boolean,
@@ -157,9 +157,9 @@ if (__DEV__) {
// export the public type for h/tsx inference
// also to avoid inline import() in generated d.ts files
export const Transition = (TransitionImpl as any) as {
export const BaseTransition = (BaseTransitionImpl as any) as {
new (): {
$props: TransitionProps
$props: BaseTransitionProps
}
}
@@ -186,7 +186,7 @@ function resolveTransitionHooks(
onLeave,
onAfterLeave,
onLeaveCancelled
}: TransitionProps,
}: BaseTransitionProps,
callHook: TransitionHookCaller,
isMounted: boolean,
pendingCallbacks: PendingCallbacks,

View File

@@ -28,7 +28,10 @@ export { Text, Comment, Fragment, Portal } from './vnode'
// Internal Components
export { Suspense, SuspenseProps } from './components/Suspense'
export { KeepAlive, KeepAliveProps } from './components/KeepAlive'
export { Transition, TransitionProps } from './components/Transition'
export {
BaseTransition,
BaseTransitionProps
} from './components/BaseTransition'
// VNode flags
export { PublicShapeFlags as ShapeFlags } from './shapeFlags'
import { PublicPatchFlags } from '@vue/shared'

View File

@@ -19,7 +19,8 @@ import { AppContext } from './apiApp'
import { SuspenseBoundary } from './components/Suspense'
import { DirectiveBinding } from './directives'
import { SuspenseImpl } from './components/Suspense'
import { TransitionHooks } from './components/Transition'
import { TransitionHooks } from './components/BaseTransition'
import { warn } from './warning'
export const Fragment = (Symbol(__DEV__ ? 'Fragment' : undefined) as any) as {
__isFragment: true
@@ -194,6 +195,11 @@ export function createVNode(
patchFlag: number = 0,
dynamicProps: string[] | null = null
): VNode {
if (__DEV__ && !type) {
warn(`Invalid vnode type when creating vnode: ${type}.`)
type = Comment
}
// class & style normalization.
if (props !== null) {
// for reactive or proxy objects, we need to clone it to enable mutation.