Unbound expression bindings
Two-way data-binding, using {!v.expression}
is expensive on performance. If you do not need to keep your UI in sync with model changes, then prefer one-way data bindings. This can improve the rendering time of the application, since the framework need not maintain event listeners.
The syntax for the unbound expression is as follows:
{#!v.expression}
Let's consider the following example code snippet, where you will need to pass an attribute value from parent to child, using an unbound expression. With one-way binding, notice that any changes to the child attribute are not propagated to the parent. Let's take a look:
<!--c:childExpr--> <aura:component> <aura:attribute name="childAttr" type="String" /> <p>childExpr childAttr: {!v.childAttr}</p> <p><Lightning:button label="Update childAttr" onclick="{!c.updateChildAttr}"/></p> </aura:component>
The controller code to update a child is as follows...