When to use aura {#v.attrib} vs {!v.attrib}?

228    Asked by Aalapprabhakaran in Salesforce , Asked on May 11, 2023

I have seen some uses of {#v.attrib} in a few lightning components, and I'm a person who is used to {!v.attrib}. Is there a difference between them or is there a scenario where '#' has to be used/is better instead of '!'?

If you want to show a value dynamically based on a aura:attribute, generally we tend to use: {!v.attrib}

So if you do cmp.set('v.attrib','test'), then aura:framework automagically does an dirty checking and changes the value accordingly.(Two-way binding)

So the label of the is set to test, just think of this as special expression that directly point to the live reference of the attribute in the component(JS perspective), which is quite similar to {{v.attrib}} expression in Angularjs which eventually does the same thing. What if you want to show a value dynamically based on an aura v attribute but it needs to work only once,when it is rendered in the view initially. So you should go with : {#v.attrib} expression, which might improve the performance if there large no.of such [removed]where you don't need such bindings), because it won't be taken into account during dirty checking.AngularJS also has the same one-way binding stuff in its armour : {{::v.attrib}}

Here's a video Mastering Lightning Component - Part 1 on this topic.

    hello {#v.test} // print hello world and does not change
    hello {!v.test} // prints hello world and 'test' changes based on input value

Your Answer


Parent Categories