* Angular
* (html template, ts class, css style, css selector)
* lifecycle: ui centered. ngOnxxx, resources (timers, etc.) managed in js.
* style encapsulation: supports shadowDOM, Emulated, None. For the emulated mode, extra attributes are attached to HTML elements and the component css is post-processed so that each CSS selector is augmented with the appropriate nghost or ngcontent attribute selector (i.e. h3[_ngcontent-pmm-6]
) and injected in the head section.
* component data sharing: Parent -> Child
* js:
* child: use @Input
decorator with child property
* parent: declare a regular property
* html: use property binding [item]="currentItem"
* component data sharing: Child -> Parent
* js:
* child: declare property @Output
decorator EventEmitter
, create internal event handler, call .emit(value)
from event handler.
* html: use event binding (itemEvent)="parentMethod($event)"
* Izy:
* (html template, js class, api class, css style)
* lifecycle: ui agnostic. resource managed in api.
* style encapsulation: use $izyid
variable.
* component data sharing: Parent -> Child
* js:
* child: use htmlcomponent.getComponentParameters and pass in to api?queryGroups
* parent: include the data in groupMember definition
* component data sharing: Child -> Parent
*js:
* child: htmlcomponent.setComponentParameters
* parent: htmlcomponent.getGroupsParameters
- Module management/loading, dynamic modules
* Angular:
* Dependency Injection. use inject method to load
* Izy:
* modtask.ldmod(), etc.
- Modifying existing css classes
* Angular: not supported
* Izy: supported using htmlcomponent.updateSelector
- Adding and removing classes to html elements
* Angular: NgClass directive (changes are applied on init and on changes), Class and style binding.
* Izy: Not supported. Instead htmlcomponent.updateSelector is used to modify existing classes (i.e. errorAreaVisibility$izyid). Changes need to be applied explicitly.
* Angular: NgStyle
* Izy: Not supported
- Displaying and Updating Properties and Input Element Values:
* Angular:
* html: NgModel (when values changes, events involved). Interpolation using {{ }}
, Property binding using [propery]="dynamic expression"
.
* framework: kkk
* changes could be automatic if [(ngModel)]
syntax is used. they can be customized by using the expanded syntax and using property binding to set the property and event binding to respond to changes. [ngModel]
and (ngModelChange)
.
* Izy:
* html: use izy-iteratie tag and $izyiteratefieldid variable in the html template. groupMember properties are string replaced in the html.
* framework: updateGroupsMembers, setGroupsParameters. getGroupsParameters
* changes are explicit. Event handlers can be attached if needed.
- Adding/removing/iterating HTML elements
* Angular:
* html: Ng(If/For/Switch)
*
* Izy:
* html: Same paradigm for displaying and updating properties. To hide/show map data to css classes.
- Component View / Data Exchange
* Angular:
* html:
* Izy:
* html: izy-iterate="", modName="componentPath/view"
* api: use componentPath with groupsmembers and groupsparameters,
- props drilling: Props drilling is a term used in React to describe a situation where data is passed down through multiple levels of components in the component tree via props.
* Angular: Dependency Injection / Service
* React: React Context API, Redux (global store), etc.
* Izy: storeLib, frame_xxx, chain.get(''), ....