/** * `transition-group` 使用了取巧地实现方式。对 组件的每一个 Slot 包装进 TransitionGroupItem, * `TransitionGroupItem` 在 `onUnmount` 也就是实际销毁前,先将自身状态主动变更为已销毁,从而欺骗框架层跳过对该组件的销毁, * 也就保留了 dom 不被移除,直到 leave 动画结束后,才又将状态变为正常后调用 `destroyComponent` 函数执行实际的销毁。 */ import { ComponentHost } from '../../core'; import type { JNode, WithChildren } from '../../jsx'; import { type AnyFn } from '../../util'; import { type ForSlot } from '../for'; import type { KEY_DATA, KEY_INDEX } from '../for/common'; import type { TransitionClassnames } from './transition'; declare const CLASSNAMES: unique symbol; declare const APPEAR: unique symbol; declare const ONDESTROY: unique symbol; export declare function TransitionGroupItem(props: { [CLASSNAMES]: string[][]; [APPEAR]: boolean; [ONDESTROY]: (fn: AnyFn) => AnyFn; } & WithChildren, host: ComponentHost): Node[]; export interface TransitionGroupProps { loop: T[] | null | undefined; /** TransitionGroup 必须指定 key */ key: keyof T | typeof KEY_DATA | typeof KEY_INDEX; appear?: boolean; } export declare function TransitionGroup(props: TransitionGroupProps & TransitionClassnames & WithChildren>, hostRoot: ComponentHost): Node[]; export {};