31 lines
980 B
TypeScript
31 lines
980 B
TypeScript
export const enum SlotFlags {
|
|
/**
|
|
* Stable slots that only reference slot props or context state. The slot
|
|
* can fully capture its own dependencies so when passed down the parent won't
|
|
* need to force the child to update.
|
|
*/
|
|
STABLE = 1,
|
|
/**
|
|
* Slots that reference scope variables (v-for or an outer slot prop), or
|
|
* has conditional structure (v-if, v-for). The parent will need to force
|
|
* the child to update because the slot does not fully capture its dependencies.
|
|
*/
|
|
DYNAMIC = 2,
|
|
/**
|
|
* `<slot/>` being forwarded into a child component. Whether the parent needs
|
|
* to update the child is dependent on what kind of slots the parent itself
|
|
* received. This has to be refined at runtime, when the child's vnode
|
|
* is being created (in `normalizeChildren`)
|
|
*/
|
|
FORWARDED = 3
|
|
}
|
|
|
|
/**
|
|
* Dev only
|
|
*/
|
|
export const slotFlagsText = {
|
|
[SlotFlags.STABLE]: 'STABLE',
|
|
[SlotFlags.DYNAMIC]: 'DYNAMIC',
|
|
[SlotFlags.FORWARDED]: 'FORWARDED'
|
|
}
|