Button component
The Button component allows user to perform a list of predefined actions by clicking on the corresponding button. Its default display mode is the HTML <button> element, which be configured to display a link.
Options
| Option | Description | Type | Default | 
|---|---|---|---|
| actions | A list of actions that are performed when a user clicks on the element. | ButtonAction[] | - | 
| additionalClasses | Sets custom classes to the component's DOM block. | Object | {} | 
| buttonClasses | Sets custom classes to the HTML  <button>element. | Object | {} | 
| class | The path to the component class. | String | Magento\Ui\Component\Container | 
| component | The path to the component’s JS constructor in terms of RequireJS. | String | Magento_Ui/js/form/components/button | 
| disabled | Initial component's state. When set to  true, users can't take action on the element. | Boolean | false | 
| displayArea | Display area of the component. | String | outsideGroup | 
| displayAsLink | Show the button as a link. | Boolean | false | 
| elementTmpl | The path to the child component’s  .htmltemplate. | String | ui/form/element/button | 
| template | Path to the general  .htmltemplate for a button. | String | ui/form/components/button/simple | 
| title | Button title. | String | '' | 
| visible | Initial component's visibility. When set to  false, the"display: none"CSS style is added to the component's DOM block. | Boolean | true | 
ButtonAction interface
| Option | Description | Type | Required | 
|---|---|---|---|
| actionName | Name of the component's method to be invoked. | String | Required | 
| params | A list of arguments that will be passed to the method. | Array | Optional | 
| targetName | Reference to component. | String | Required | 
Source files
Extends UiElement:
- Magento/Ui/view/base/web/js/form/components/button.js
- Magento/Ui/view/base/web/templates/form/components/button/simple.html
- Magento/Ui/view/base/web/templates/form/element/button.html
Examples
Integration (Listing component)
This is an example of how to integrate the Button component ("Test Button") with the Listing component:
Copied to your clipboard<listing>...<columns>...</columns><button name="my_new_button"><argument name="data" xsi:type="array"><item name="config" xsi:type="array"><item name="actions" xsi:type="array"><!-- Add your button's actions here --><item name="0" xsi:type="array"><item name="targetName" xsi:type="string">TARGET_NAME</item><item name="actionName" xsi:type="string">ACTION_NAME</item></item></item></item></argument><settings><displayAsLink>false</displayAsLink><title><![CDATA[Test Button]]></title></settings></button></listing>
Result
The Button component appears below a Listing component on the page, as follows:
      
   
        
Integration (Form component)
This is an example of how to integrate the Button component with the Form component:
Copied to your clipboard<form>...<fieldset>...<button name="custom_button"><argument name="data" xsi:type="array"><item name="config" xsi:type="array"><item name="buttonClasses" xsi:type="string">custom-button-class</item><item name="actions" xsi:type="array"><item name="0" xsi:type="array"><item name="targetName" xsi:type="string">TARGET_NAME</item><item name="actionName" xsi:type="string">ACTION_NAME</item></item></item></item></argument><settings><displayAsLink>false</displayAsLink><title translate="true">Custom Button</title></settings></button><button name="custom_button_as_link"><argument name="data" xsi:type="array"><item name="config" xsi:type="array"><item name="buttonClasses" xsi:type="string">custom-button-as-link-class</item><item name="actions" xsi:type="array"><item name="0" xsi:type="array"><item name="targetName" xsi:type="string">TARGET_NAME</item><item name="actionName" xsi:type="string">ACTION_NAME</item></item></item></item></argument><settings><displayAsLink>true</displayAsLink><title translate="true">Custom Button As Link</title></settings></button></fieldset></form>
Result
      
  