When you include another component, such as <ui:button>, in a component, we call that a component reference to <ui:button>. You can use <aura:set> to set an attribute on the component reference. For example, if your component includes a reference to <ui:button>:
<ui:button label="Save"> <aura:set attribute="buttonTitle" value="Click to save the record"/> </ui:button>
This is equivalent to:
<ui:button label="Save" buttonTitle="Click to save the record" />
The latter syntax without aura:set makes more sense in this simple example. You can also use this simpler syntax in component references to set values for attributes that are inherited from parent components.
aura:set is more useful when you want to set markup as the attribute value. For example, this sample specifies the markup for the else attribute in the aura:if tag.
<aura:component> <aura:attribute name="display" type="Boolean" default="true"/> <aura:if isTrue="{!v.display}"> Show this if condition is true <aura:set attribute="else"> <ui:button label="Save" press="{!c.saveRecord}" /> </aura:set> </aura:if> </aura:component>