"Hello, World" example¶
Here is a small "Hello, World" application as a quick glance at Imba.
The code¶
1 2 3 4 5 6 7 8 9 10 11 12 13 | var state = { name: 'World' } tag App def render <self> <p> "Hello, {data:name}" <p> <input[data:name]> Imba.mount <App[state]> |
You can see the code in a live sandbox at Scrimba.
Breakdown¶
The state variable is an object that
contains the application state. In our case, it only has one property, name
,
which starts off as a string 'World'
.
A custom tag, App
, contains the render
method that
renders the application. The special <self>
tag stands for the DOM element
for the custom tag itself, and tags below it represent the child elements.
The string "Hello, {data:name}"
uses interpolation to insert the value of
data:name
. data
is a special property on tags that points to values bound
to the tags.
The <input[data:name]>
creates an input element with data:name
bound to it.
This is two-way data binding where changes to the input element will update the
data:name
and vice-versa.
Finally, with Imba.mount
we mount the application into document.body
, and
bind the state
object to the App
tag.