packages/inferno-vnode-flags/README.md
Inferno VNode Flags is a small utility library for Inferno.
Usage of inferno-vnode-flags should be limited to assigning VNodeFlags and ChildFlags when using creating vNodes.
npm install --save inferno-vnode-flags
VNodeFlags:
VNodeFlags.HtmlElementVNodeFlags.ComponentUnknownVNodeFlags.ComponentClassVNodeFlags.ComponentFunctionVNodeFlags.TextVNodeFlags.SvgElementVNodeFlags.InputElementVNodeFlags.TextareaElementVNodeFlags.SelectElementVNodeFlags.PortalVNodeFlags.ReCreate (JSX $ReCreate) always re-creates the vNodeVNodeFlags.ContentEditableVNodeFlags.FragmentVNodeFlags.InUseVnodeFlags.ForwardRefVNodeFlags.NormalizedVNodeFlags Masks:
VNodeFlags.ForwardRefComponent Functional component wrapped in forward refVNodeFlags.FormElement - Is form elementVNodeFlags.Element - Is vNode elementVNodeFlags.Component - Is vNode ComponentVNodeFlags.DOMRef - Bit set when vNode holds DOM referenceVNodeFlags.InUseOrNormalized - VNode is used somewhere else or came from normalization processVNodeFlags.ClearInUseNormalized - Opposite mask of InUse or NormalizedChildFlags
ChildFlags.UnknownChildren needs NormalizationChildFlags.HasInvalidChildren is invalid (null, undefined, false, true)ChildFlags.HasVNodeChildren (JSX $HasVNodeChildren) is single vNode (Element/Component)ChildFlags.HasNonKeyedChildren (JSX $HasNonKeyedChildren) is Array of vNodes non keyed (no nesting, no holes)ChildFlags.HasKeyedChildren (JSX $HasKeyedChildren) is Array of vNodes keyed (no nesting, no holes)ChildFlags.HasTextChildren (JSX $HasTextChildren) vNode contains only textChildFlags Masks
ChildFlags.MultipleChildren Is ArrayYou can easily combine multiple flags, by using bitwise operators. A common use case is an element that has keyed children: