diff --git a/documentation/UI/index.md b/documentation/UI/index.md new file mode 100644 index 00000000..725c1a3d --- /dev/null +++ b/documentation/UI/index.md @@ -0,0 +1,3 @@ +# Index for UI code + +1. [Rendering DOM elements](./render-dom-elements.md) diff --git a/documentation/UI/render-dom-elements.md b/documentation/UI/render-dom-elements.md new file mode 100644 index 00000000..95238bbe --- /dev/null +++ b/documentation/UI/render-dom-elements.md @@ -0,0 +1,18 @@ +There are two options to render DOM elements: +- Use `tag` from `ui/general/html.js` +- Use `TemplateBuilder` object (t) from the render function in the view. + +Although syntactically similar, they are not functionally equivalent. +Primarily `tag` **does not support** bindings nor event handlers. + +```js + // The onClick here wont work!! + tag.button({className:"awesome-btn", onClick: () => this.foo()}); +``` + For these functionalities always use the TemplateBuilder object that is passed as argument to the render method. +```js + render(t, vm){ + // The onClick works here. + t.button({className:"awesome-btn", onClick: () => this.foo()}); + } +```