A component grade extends on the notion of component defaults (fluid.defaults). Where a In fact, every fluid.defaults is used to store and retrieve a component's default settings, the grade is a form of type definition that represents a collection of component defaults and is intended for reuse in other component's defaults definition. In other words, a particular component's fluid.defaults can be called a grade when the component name is used as a base grade within another component's defaults directive introduces a grade into the system of Fluid Infusion components, which can be built on to derive further grades/components. This derivation occurs by mentioning the name of the original grade within the gradeNames section of the derived component.
Developers can create their own fluid.defaults / grades as well as use them to build upon each other, and compose them as needed.
The Infusion Framework already contains several predefined component grades that are intended to be used (but do not have to be) as normally form the initial building blocks for the external components and grades. The following table describes these grades and how they relate to each other.
|A special directive grade that instructs the framework to create an actual Function object (creator function) to be accessible outside of the Infusion Frameworkautomatically construct a globally named creator function (with the same name as the grade) responsible for the construction of the component. NOTE: for the Infusion 2.0 release this grade name will eventually be unnecessary become redundant as it will be implicit.the default for every grade|
|A "little" component is the most basic component: it supports options merging with defaults (Little Components). All Fluid components are derived from this grade, and in general all things not derived from this grade are non-components (e.g. plain functions, or model transformation transforms, etc.)|
|A "model" component is already a little component that additionally provides supports for a component's model, defined in the components options, and operations on it (Model Components).|
|An "evented" component is already a little component that additionally instantiates event firers based on default framework events (onCreate, onDestroy, onDetach) and events declared in the options (Evented Components).|
|A "view" component is already an evented and a model component that is DOM aware and supports a view (View Components).|
|A "renderer" component is already a vew component that bears a renderer. There are additional features provided by this component grade specified on the Useful functions and events section of the Renderer Components page|