A component has three life-cycle events:
These events are not unique to components:
1linkconst timer = interval(1000);
2link
3linkconst element = <div>You've been here for {timer} seconds!</div>; // --> CREATE
4link
5linkrenderer.render(element).on(document.body); // --> BIND
6linkrenderer.remove(element); // --> CLEAR
☝️ Here, the callbag timer is embedded into element during CREATE. It is subscribed to
during BIND, so that content of element can be updated accordingly. This subscription is cleared
on CLEAR.
Component hooks allow you to tap into these hooks in your component functions:
1linkexport function MyComponent(_, renderer) {
2link this.onBind(() => alert('Binding element ...'));
3link this.onClear(() => alert('Clearing element ...'));
4link
5link return <h1>Hellow World!</h1>;
6link}
It is recommended to type-annotate the this argument in TypeScript for further type-safety. For utilizing
hooks, you can use LiveComponentThis interface for that purpose:
1linkimport { LiveComponentThis } from 'render-jsx/component/plugins';
2link
3linkexport function MyComponent(
4link this: LiveComponentThis,
5link ...
6link) {
7link ...
8link}