2.4 | CIF processing
CIF initial processing
- start the initial processing after the
crcReady
event is fired- process the cubbles in root and create child component elements. (Details of processing components are presented in the next section.)
- after all pending tags are created in component trees and all of them are ready, the
cifAllComponentsReady
event is fired - start the pocessing after all components are ready
- create all connection tags
- parse the connection tags and register the connections in the relevant context
- create the slot init tags
- fire the
cifInitStart
event- parse,
- sort and
- process the init tags
- fire the
cifInitReady
event - if this process is called from initial processing: create mutation summary observer
Process components
The processing of components is shown using an example, and is composed by the steps presented below:
- process
Elementary1
create some required attributes, check correct runtimeId, etc.
Hint
By processing existing elements: Some required attributes will be created and some existing attribute values will be checked and adjusted.
- process
Compound1
- create some required attributes, check correct runtimeId, etc.
- register that pending components for
Compound1
exist - create and attach subelment
Elementary2
- create and attach subelement
Compound2
- register that no pending component for
Compound1
exists anymore - fire
componentReady
event
- process
Compound2
- create some required attributes, check correct runtimeId etc.
- register that pending components for
Compound2
exist - create and attach sublelement
Elementary3
- create and attach subelement
Elementary4
- register that no pending component for
Compound2
exists anymore - fire
componentReady
event
Each of the components Elementary1
, Elementary2
, Elementary3
and Elementary4
fires the componenReady
event. The cif
registers all components first as unready. After the components fired the componentReady
event, the register will changed to ready. The cif
registers the pending elements (not yet created subelements) for each component too. If all components are ready and no pending components exists anymore, the cifAllComponentsReady
event will be fired.
Hints
The member elements will created be in the order in which they appear in members definition in manifest; or if a template exists members will be imported and processed in the order in which they were included within the template.
Example of processing components in CIF
Component structure
The following example included
- a component tree with 3 levels
- 2 nested compound