{"id":305,"date":"2022-03-22T17:02:14","date_gmt":"2022-03-22T10:02:14","guid":{"rendered":"https:\/\/magerubik.com\/blog\/?p=305"},"modified":"2023-04-24T09:14:33","modified_gmt":"2023-04-24T02:14:33","slug":"how-to-use-magento-2-ui-component","status":"publish","type":"post","link":"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/","title":{"rendered":"How to use Magento 2 UI component"},"content":{"rendered":"\n<div class=\"magerubik-quote\">\n\t<p>UI Components are an ambitious new approach to building user interface elements in Magento 2, and much of the new admin console is built on this functionality. The main purpose is to combine HTML and JavaScript content, allowing the creation of new components with any form and function possible. In the following article, we will learn how Magento 2 use UI component to create simple grid.<\/p>\n<\/div>\n<p>Assume that you have read through and practiced the articles <a href=\"http:\/\/magerubik.com\/blog\/create-magento-2-extension-step-by-step\" title=\"Create Magento 2 extension\">create Magento 2 extension<\/a> and <a href=\"http:\/\/magerubik.com\/blog\/magento-2-create-model-collection\" title=\"Magento 2 create model collection\">Magento 2 create model collection<\/a> or are knowledgeable about it.<\/p>\n<p>Now, we will use UI Components to create a grid for managing messages on the admin backend.<\/p>\n<h2 class=\"h3\"><strong>1. Create admin route<\/strong><\/h2>\n<p>Create file <span class=\"code\">app\\code\\Magerubik\\Simple\\etc\\adminhtml\\routes.xml<\/span> with below content.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?xml version=\"1.0\"?>\n&lt;config xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"urn:magento:framework:App\/etc\/routes.xsd\">\n    &lt;router id=\"admin\">\n        &lt;route id=\"simple\" frontName=\"simple\">\n\t\t\t&lt;module name=\"Magerubik_Simple\" before=\"Magento_Backend\" \/>\n        &lt;\/route>\n    &lt;\/router>\n&lt;\/config><\/pre>\n\n\n\n<h2 class=\"h3\"><strong>2. Create admin controller<\/strong><\/h2>\n<p>Create file <span class=\"code\">app\\code\\Magerubik\\Simple\\Controller\\Adminhtml\\Message\\Index.php<\/span> with below content.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\nnamespace Magerubik\\Simple\\Controller\\Adminhtml\\Message;\nclass Index extends \\Magento\\Backend\\App\\Action\n{\n    protected $resultPageFactory;\n    public function __construct(\n        \\Magento\\Backend\\App\\Action\\Context $context,\n        \\Magento\\Framework\\View\\Result\\PageFactory $resultPageFactory\n    ) {\n        parent::__construct($context);\n        $this->resultPageFactory = $resultPageFactory;\n    }\n    public function execute()\n    {\n        return $this->resultPageFactory->create();\n    }\n}<\/pre>\n\n\n\n<h2 class=\"h3\"><strong>3. Create Layout<\/strong><\/h2>\n<p>Create file <span class=\"code\">app\\code\\Magerubik\\Simple\\view\\adminhtml\\layout\\simple_message_index.xml<\/span> with below content.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?xml version=\"1.0\"?>\n&lt;page xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"urn:magento:framework:View\/Layout\/etc\/page_configuration.xsd\">\n    &lt;body>\n\t\t&lt;referenceBlock name=\"page.title\">\n\t\t\t&lt;action method=\"setPageTitle\">\n\t\t\t\t&lt;argument translate=\"true\" name=\"title\" xsi:type=\"string\">Manage Message&lt;\/argument>\n\t\t\t&lt;\/action>\n\t\t&lt;\/referenceBlock>\n\t\t&lt;referenceContainer name=\"content\">\n            &lt;uiComponent name=\"message_listing\" \/>\n        &lt;\/referenceContainer>\n    &lt;\/body>\n&lt;\/page><\/pre>\n\n\n\n<h2 class=\"h3\"><strong>4. Create Data Provider<\/strong><\/h2>\n<p>Create file <span class=\"code\">app\\code\\Magerubik\\Simple\\etc\\di.xml<\/span> with below content.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?xml version=\"1.0\"?>\n&lt;config xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"urn:magento:framework:ObjectManager\/etc\/config.xsd\">\n    &lt;type name=\"Magento\\Framework\\View\\Element\\UiComponent\\DataProvider\\CollectionFactory\">\n        &lt;arguments>\n            &lt;argument name=\"collections\" xsi:type=\"array\">\n                &lt;item name=\"message_listing_data_source\" xsi:type=\"string\">message_collection&lt;\/item>\n            &lt;\/argument>\n        &lt;\/arguments>\n    &lt;\/type>\n    &lt;virtualType name=\"message_collection\" type=\"Magento\\Framework\\View\\Element\\UiComponent\\DataProvider\\SearchResult\">\n        &lt;arguments>\n            &lt;argument name=\"mainTable\" xsi:type=\"string\">vendor_message&lt;\/argument>\n            &lt;argument name=\"resourceModel\" xsi:type=\"string\">Magerubik\\Simple\\Model\\ResourceModel\\Message&lt;\/argument>\n        &lt;\/arguments>\n    &lt;\/virtualType>\n&lt;\/config><\/pre>\n\n\n\n<h2 class=\"h3\"><strong>5. Use Magento 2 UI component create simple grid<\/strong><\/h2>\n<p>Create file <span class=\"code\">app\\code\\Magerubik\\Simple\\view\\adminhtml\\ui_component\\message_listing.xml<\/span> with below content.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;listing xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"urn:magento:module:Magento_Ui:etc\/ui_configuration.xsd\">\n    &lt;argument name=\"data\" xsi:type=\"array\">\n        &lt;item name=\"js_config\" xsi:type=\"array\">\n            &lt;item name=\"provider\" xsi:type=\"string\">message_listing.message_listing_data_source&lt;\/item>\n        &lt;\/item>\n    &lt;\/argument>\n    &lt;settings>\n        &lt;spinner>message_columns&lt;\/spinner>\n        &lt;deps>\n            &lt;dep>message_listing.message_listing_data_source&lt;\/dep>\n        &lt;\/deps>\n        &lt;buttons>\n            &lt;button name=\"new\">\n                &lt;url path=\"*\/*\/new\"\/>\n                &lt;class>primary&lt;\/class>\n                &lt;label translate=\"true\">Add new&lt;\/label>\n            &lt;\/button>\n        &lt;\/buttons>\n    &lt;\/settings>\n    &lt;listingToolbar name=\"listing_top\">\n        &lt;settings>\n            &lt;sticky>true&lt;\/sticky>\n        &lt;\/settings>\n        &lt;bookmark name=\"bookmarks\"\/>\n        &lt;exportButton name=\"export_button\"\/>\n        &lt;columnsControls name=\"columns_controls\"\/>\n        &lt;filters name=\"listing_filters\" \/>\n        &lt;paging name=\"listing_paging\"\/>\n        &lt;massaction name=\"listing_massaction\">\n            &lt;argument name=\"data\" xsi:type=\"array\">\n                &lt;item name=\"config\" xsi:type=\"array\">\n                    &lt;item name=\"component\" xsi:type=\"string\">Magento_Ui\/js\/grid\/tree-massactions&lt;\/item>\n                &lt;\/item>\n            &lt;\/argument>\n            &lt;action name=\"delete\">\n                &lt;argument name=\"data\" xsi:type=\"array\">\n                    &lt;item name=\"config\" xsi:type=\"array\">\n                        &lt;item name=\"type\" xsi:type=\"string\">delete&lt;\/item>\n                        &lt;item name=\"label\" xsi:type=\"string\" translate=\"true\">Delete&lt;\/item>\n                        &lt;item name=\"url\" xsi:type=\"url\" path=\"*\/*\/delete\"\/>\n                        &lt;item name=\"confirm\" xsi:type=\"array\">\n                            &lt;item name=\"title\" xsi:type=\"string\" translate=\"true\">Delete Row&lt;\/item>\n                            &lt;item name=\"message\" xsi:type=\"string\" translate=\"true\">Are you sure you wan't to delete selected items?&lt;\/item>\n                        &lt;\/item>\n                    &lt;\/item>\n                &lt;\/argument>\n            &lt;\/action>\n        &lt;\/massaction>\n    &lt;\/listingToolbar>\n    &lt;dataSource name=\"message_listing_data_source\" component=\"Magento_Ui\/js\/grid\/provider\">\n        &lt;settings>\n            &lt;updateUrl path=\"mui\/index\/render\"\/>\n            &lt;storageConfig>\n                &lt;param name=\"indexField\" xsi:type=\"string\">messages_id&lt;\/param>\n            &lt;\/storageConfig>\n        &lt;\/settings>\n        &lt;aclResource>Magerubik_Simple::listing&lt;\/aclResource>\n        &lt;dataProvider class=\"Magento\\Framework\\View\\Element\\UiComponent\\DataProvider\\DataProvider\" name=\"message_listing_data_source\">\n            &lt;settings>\n                &lt;requestFieldName>id&lt;\/requestFieldName>\n                &lt;primaryFieldName>messages_id&lt;\/primaryFieldName>\n            &lt;\/settings>\n        &lt;\/dataProvider>\n    &lt;\/dataSource>\n    &lt;!-- columns -->\n    &lt;columns name=\"message_columns\">\n        &lt;selectionsColumn name=\"ids\">\n            &lt;settings>\n                &lt;indexField>messages_id&lt;\/indexField>\n            &lt;\/settings>\n        &lt;\/selectionsColumn>\n        &lt;column name=\"messages_id\" sortOrder=\"2\">\n            &lt;settings>\n                &lt;filter>text&lt;\/filter>\n                &lt;label translate=\"true\">ID&lt;\/label>\n            &lt;\/settings>\n        &lt;\/column>\n\t\t&lt;column name=\"user_id\" class=\"Magerubik\\Simple\\Ui\\Component\\Listing\\Columns\\Customerlink\">\n            &lt;argument name=\"data\" xsi:type=\"array\">\n                &lt;item name=\"config\" xsi:type=\"array\">\n                    &lt;item name=\"filter\" xsi:type=\"string\">text&lt;\/item>\n                    &lt;item name=\"sorting\" xsi:type=\"string\">asc&lt;\/item>\n                    &lt;item name=\"component\" xsi:type=\"string\">Magento_Ui\/js\/grid\/columns\/actions&lt;\/item>\n\t\t\t\t\t&lt;item name=\"bodyTmpl\" xsi:type=\"string\">ui\/grid\/cells\/html&lt;\/item>\n\t\t\t\t\t&lt;item name=\"resizeEnabled\" xsi:type=\"boolean\">false&lt;\/item>\n                    &lt;item name=\"resizeDefaultWidth\" xsi:type=\"string\">200&lt;\/item>\n                    &lt;item name=\"indexField\" xsi:type=\"string\">messages_id&lt;\/item>\n                    &lt;item name=\"label\" xsi:type=\"string\" translate=\"true\">User Name&lt;\/item>\n                    &lt;item name=\"sortOrder\" xsi:type=\"number\">3&lt;\/item>\n                &lt;\/item>\n            &lt;\/argument>\n        &lt;\/column>\n        &lt;column name=\"title\" sortOrder=\"4\">\n            &lt;settings>\n                &lt;filter>text&lt;\/filter>\n                &lt;label translate=\"true\">Title&lt;\/label>\n            &lt;\/settings>\n        &lt;\/column>\n\t\t&lt;column name=\"description\" sortOrder=\"5\">\n            &lt;settings>\n                &lt;filter>text&lt;\/filter>\n                &lt;label translate=\"true\">Description&lt;\/label>\n            &lt;\/settings>\n        &lt;\/column>\n\t\t&lt;column name=\"status\" sortOrder=\"6\">\n            &lt;settings>\n                &lt;filter>text&lt;\/filter>\n                &lt;label translate=\"true\">Status&lt;\/label>\n            &lt;\/settings>\n        &lt;\/column>\n\t\t&lt;column name=\"created_at\" class=\"Magento\\Ui\\Component\\Listing\\Columns\\Date\">\n            &lt;argument name=\"data\" xsi:type=\"array\">\n                &lt;item name=\"config\" xsi:type=\"array\">\n                    &lt;item name=\"filter\" xsi:type=\"string\">dateRange&lt;\/item>\n                    &lt;item name=\"component\" xsi:type=\"string\">Magento_Ui\/js\/grid\/columns\/date&lt;\/item>\n                    &lt;item name=\"dataType\" xsi:type=\"string\">date&lt;\/item>\n                    &lt;item name=\"label\" xsi:type=\"string\" translate=\"true\">Date&lt;\/item>\n                    &lt;item name=\"sortOrder\" xsi:type=\"number\">7&lt;\/item>\n                &lt;\/item>\n            &lt;\/argument>\n        &lt;\/column>\n    &lt;\/columns>\n&lt;\/listing><\/pre>\n\n\n\n<p>Then create file <span class=\"code\">app\\code\\Magerubik\\Simple\\Ui\\Component\\Listing\\Columns\\Customerlink.php<\/span> with below content to make customer link col.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\nnamespace Magerubik\\Simple\\Ui\\Component\\Listing\\Columns;\nuse Magento\\Framework\\UrlInterface;\nuse Magento\\Framework\\View\\Element\\UiComponent\\ContextInterface;\nuse Magento\\Framework\\View\\Element\\UiComponentFactory;\nuse Magento\\Ui\\Component\\Listing\\Columns\\Column;\nclass Customerlink extends Column\n{\n    protected $urlBuilder;\n    public function __construct(\n        ContextInterface $context,\n        UiComponentFactory $uiComponentFactory,\n        UrlInterface $urlBuilder,\n        array $components = [],\n        array $data = []\n    ) {\n        $this->urlBuilder = $urlBuilder;\n        parent::__construct($context, $uiComponentFactory, $components, $data);\n    }\n    public function prepareDataSource(array $dataSource)\n    {\n        if (isset($dataSource['data']['items'])) {\n            $fieldName = $this->getData('name');\n            foreach ($dataSource['data']['items'] as &amp;$item) {\n\t\t\t\t$customerId = $item['user_id'];\n\t\t\t\t$objectManager = \\Magento\\Framework\\App\\ObjectManager::getInstance();\n\t\t\t\t$customerData = $objectManager->create('Magento\\Customer\\Model\\Customer')->load($customerId);\n\t\t\t\t$userName = $customerData->getFirstname() . ' ' . $customerData->getLastname();\n\t\t\t\t$item[$fieldName] = \"&lt;a href='\" . $this->urlBuilder->getUrl('customer\/index\/edit', ['id' => $item['user_id']]) . \"' target='blank' title='\".__('View Customer').\"'>\" . $userName . \"&lt;\/a>\";\n            }\n        }\n\n        return $dataSource;\n    }\n}<\/pre>\n\n\n\n<h2 class=\"h3\"><strong>6. Create admin menu<\/strong><\/h2>\n<p>Create file <span class=\"code\">app\\code\\Magerubik\\Simple\\etc\\adminhtml\\menu.xml<\/span> with below content:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?xml version=\"1.0\"?>\n&lt;config xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"urn:magento:module:Magento_Backend:etc\/menu.xsd\">\n    &lt;menu>\n        &lt;add id=\"Magerubik_Simple::menu\" title=\"Magerubik\" module=\"Magerubik_Simple\" translate=\"title\" sortOrder=\"68\" resource=\"Magerubik_Simple::menu\"\/>\n        &lt;add id=\"Magerubik_Simple::manager\" title=\"Manager Message\" module=\"Magerubik_Simple\" translate=\"title\" sortOrder=\"1068\" parent=\"Magerubik_Simple::menu\" resource=\"Magerubik_Simple::manager\" action=\"simple\/message\"\/>\n    &lt;\/menu>\n&lt;\/config><\/pre>\n\n\n\n<h2 class=\"h3\"><strong>7. Go to backend check it working<\/strong><\/h2>\n<p>If you can see the below screenshot everything is ok.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/cdn2.magerubik.com\/media\/extensions\/magento-2-admin-menu.jpg\" alt=\"Magento 2 admin menu\"><\/figure>\t\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/cdn2.magerubik.com\/media\/module\/magento-ui-component.jpg\" alt=\"Magento UI Component\"><\/figure>\t\n<blockquote class=\"wp-block-quote\">\n\t<p>Now you know how to use Magento 2 UI component create simple grid. In the <a href=\"https:\/\/magerubik.com\/blog\/create-ui-form-in-magento-2\/\" title=\"create ui form in magento 2\">next posts<\/a>, we will learn how to use it to create form import data. Also, you can read more about the Magento default component <a href=\"https:\/\/devdocs.magento.com\/guides\/v2.4\/ui_comp_guide\/bk-ui_comps.html\" title=\"Magento 2 UI component\">here<\/a>. <a href=\"https:\/\/magerubik.com\/contact\" title=\"Contact Magerubik\">Contact us<\/a> if you face any problems during the installation process.<\/p>\n<\/blockquote>\n<p class=\"simple-note\">You can download the demo code for this entire series from <a href=\"https:\/\/github.com\/magerubik\/module-simple\" title=\"demo code on github\" rel=\"nofollow noopener\">GitHub<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>UI Components are an ambitious new approach to building user interface elements in Magento 2, and much of the new<\/p>\n","protected":false},"author":1,"featured_media":308,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-305","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-magento-2-extension-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to use Magento 2 UI component | MageRubik<\/title>\n<meta name=\"description\" content=\"Magento 2 UI component-UI Components are an ambitious new approach to building user interface elements in Magento 2.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to use Magento 2 UI component | MageRubik\" \/>\n<meta property=\"og:description\" content=\"Magento 2 UI component-UI Components are an ambitious new approach to building user interface elements in Magento 2.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/\" \/>\n<meta property=\"og:site_name\" content=\"MageRubik\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/magerubik\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/magerubik\" \/>\n<meta property=\"article:published_time\" content=\"2022-03-22T10:02:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-04-24T02:14:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/magerubik.com\/blog\/wp-content\/uploads\/2022\/03\/magento-create-UI-component.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"445\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Hilary howard\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/www.twitter.com\/magerubik\" \/>\n<meta name=\"twitter:site\" content=\"@magerubik\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hilary howard\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/\"},\"author\":{\"name\":\"Hilary howard\",\"@id\":\"https:\/\/magerubik.com\/blog\/#\/schema\/person\/dad797dc557c925c92436706db1359d8\"},\"headline\":\"How to use Magento 2 UI component\",\"datePublished\":\"2022-03-22T10:02:14+00:00\",\"dateModified\":\"2023-04-24T02:14:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/\"},\"wordCount\":314,\"publisher\":{\"@id\":\"https:\/\/magerubik.com\/blog\/#\/schema\/person\/dad797dc557c925c92436706db1359d8\"},\"image\":{\"@id\":\"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/magerubik.com\/blog\/wp-content\/uploads\/2022\/03\/magento-create-UI-component.jpg\",\"articleSection\":[\"Magento 2 Extension Tutorials\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/\",\"url\":\"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/\",\"name\":\"How to use Magento 2 UI component | MageRubik\",\"isPartOf\":{\"@id\":\"https:\/\/magerubik.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/magerubik.com\/blog\/wp-content\/uploads\/2022\/03\/magento-create-UI-component.jpg\",\"datePublished\":\"2022-03-22T10:02:14+00:00\",\"dateModified\":\"2023-04-24T02:14:33+00:00\",\"description\":\"Magento 2 UI component-UI Components are an ambitious new approach to building user interface elements in Magento 2.\",\"breadcrumb\":{\"@id\":\"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/#primaryimage\",\"url\":\"https:\/\/magerubik.com\/blog\/wp-content\/uploads\/2022\/03\/magento-create-UI-component.jpg\",\"contentUrl\":\"https:\/\/magerubik.com\/blog\/wp-content\/uploads\/2022\/03\/magento-create-UI-component.jpg\",\"width\":800,\"height\":445,\"caption\":\"Magento 2 create UI component\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Magerubik blog site\",\"item\":\"https:\/\/magerubik.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to use Magento 2 UI component\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/magerubik.com\/blog\/#website\",\"url\":\"https:\/\/magerubik.com\/blog\/\",\"name\":\"Magerubik\",\"description\":\"MageRubik blog site\",\"publisher\":{\"@id\":\"https:\/\/magerubik.com\/blog\/#\/schema\/person\/dad797dc557c925c92436706db1359d8\"},\"alternateName\":\"Magento 2 Extension\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/magerubik.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/magerubik.com\/blog\/#\/schema\/person\/dad797dc557c925c92436706db1359d8\",\"name\":\"Hilary howard\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/magerubik.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/magerubik.com\/blog\/wp-content\/uploads\/2022\/03\/magerubik-logo.png\",\"contentUrl\":\"https:\/\/magerubik.com\/blog\/wp-content\/uploads\/2022\/03\/magerubik-logo.png\",\"width\":265,\"height\":90,\"caption\":\"Hilary howard\"},\"logo\":{\"@id\":\"https:\/\/magerubik.com\/blog\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/localhost\/blog\",\"https:\/\/www.facebook.com\/magerubik\",\"https:\/\/www.instagram.com\/magerubik\",\"https:\/\/www.linkedin.com\/magerubik\",\"https:\/\/www.pinterest.com\/magerubik\",\"https:\/\/twitter.com\/https:\/\/www.twitter.com\/magerubik\",\"https:\/\/www.myspace.com\/magerubik\",\"https:\/\/www.youtube.com\/magerubik\",\"https:\/\/www.soundcloud.com\/magerubik\",\"https:\/\/www.tumblr.com\/magerubik\",\"https:\/\/www.wikipedia.com\/magerubik\"],\"url\":\"https:\/\/magerubik.com\/blog\/author\/hilary-howard\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to use Magento 2 UI component | MageRubik","description":"Magento 2 UI component-UI Components are an ambitious new approach to building user interface elements in Magento 2.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/","og_locale":"en_US","og_type":"article","og_title":"How to use Magento 2 UI component | MageRubik","og_description":"Magento 2 UI component-UI Components are an ambitious new approach to building user interface elements in Magento 2.","og_url":"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/","og_site_name":"MageRubik","article_publisher":"https:\/\/www.facebook.com\/magerubik","article_author":"https:\/\/www.facebook.com\/magerubik","article_published_time":"2022-03-22T10:02:14+00:00","article_modified_time":"2023-04-24T02:14:33+00:00","og_image":[{"width":800,"height":445,"url":"https:\/\/magerubik.com\/blog\/wp-content\/uploads\/2022\/03\/magento-create-UI-component.jpg","type":"image\/jpeg"}],"author":"Hilary howard","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/www.twitter.com\/magerubik","twitter_site":"@magerubik","twitter_misc":{"Written by":"Hilary howard","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/#article","isPartOf":{"@id":"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/"},"author":{"name":"Hilary howard","@id":"https:\/\/magerubik.com\/blog\/#\/schema\/person\/dad797dc557c925c92436706db1359d8"},"headline":"How to use Magento 2 UI component","datePublished":"2022-03-22T10:02:14+00:00","dateModified":"2023-04-24T02:14:33+00:00","mainEntityOfPage":{"@id":"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/"},"wordCount":314,"publisher":{"@id":"https:\/\/magerubik.com\/blog\/#\/schema\/person\/dad797dc557c925c92436706db1359d8"},"image":{"@id":"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/#primaryimage"},"thumbnailUrl":"https:\/\/magerubik.com\/blog\/wp-content\/uploads\/2022\/03\/magento-create-UI-component.jpg","articleSection":["Magento 2 Extension Tutorials"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/","url":"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/","name":"How to use Magento 2 UI component | MageRubik","isPartOf":{"@id":"https:\/\/magerubik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/#primaryimage"},"image":{"@id":"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/#primaryimage"},"thumbnailUrl":"https:\/\/magerubik.com\/blog\/wp-content\/uploads\/2022\/03\/magento-create-UI-component.jpg","datePublished":"2022-03-22T10:02:14+00:00","dateModified":"2023-04-24T02:14:33+00:00","description":"Magento 2 UI component-UI Components are an ambitious new approach to building user interface elements in Magento 2.","breadcrumb":{"@id":"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/#primaryimage","url":"https:\/\/magerubik.com\/blog\/wp-content\/uploads\/2022\/03\/magento-create-UI-component.jpg","contentUrl":"https:\/\/magerubik.com\/blog\/wp-content\/uploads\/2022\/03\/magento-create-UI-component.jpg","width":800,"height":445,"caption":"Magento 2 create UI component"},{"@type":"BreadcrumbList","@id":"https:\/\/magerubik.com\/blog\/how-to-use-magento-2-ui-component\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Magerubik blog site","item":"https:\/\/magerubik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to use Magento 2 UI component"}]},{"@type":"WebSite","@id":"https:\/\/magerubik.com\/blog\/#website","url":"https:\/\/magerubik.com\/blog\/","name":"Magerubik","description":"MageRubik blog site","publisher":{"@id":"https:\/\/magerubik.com\/blog\/#\/schema\/person\/dad797dc557c925c92436706db1359d8"},"alternateName":"Magento 2 Extension","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/magerubik.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/magerubik.com\/blog\/#\/schema\/person\/dad797dc557c925c92436706db1359d8","name":"Hilary howard","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/magerubik.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/magerubik.com\/blog\/wp-content\/uploads\/2022\/03\/magerubik-logo.png","contentUrl":"https:\/\/magerubik.com\/blog\/wp-content\/uploads\/2022\/03\/magerubik-logo.png","width":265,"height":90,"caption":"Hilary howard"},"logo":{"@id":"https:\/\/magerubik.com\/blog\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/localhost\/blog","https:\/\/www.facebook.com\/magerubik","https:\/\/www.instagram.com\/magerubik","https:\/\/www.linkedin.com\/magerubik","https:\/\/www.pinterest.com\/magerubik","https:\/\/twitter.com\/https:\/\/www.twitter.com\/magerubik","https:\/\/www.myspace.com\/magerubik","https:\/\/www.youtube.com\/magerubik","https:\/\/www.soundcloud.com\/magerubik","https:\/\/www.tumblr.com\/magerubik","https:\/\/www.wikipedia.com\/magerubik"],"url":"https:\/\/magerubik.com\/blog\/author\/hilary-howard\/"}]}},"_links":{"self":[{"href":"https:\/\/magerubik.com\/blog\/wp-json\/wp\/v2\/posts\/305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/magerubik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/magerubik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/magerubik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/magerubik.com\/blog\/wp-json\/wp\/v2\/comments?post=305"}],"version-history":[{"count":21,"href":"https:\/\/magerubik.com\/blog\/wp-json\/wp\/v2\/posts\/305\/revisions"}],"predecessor-version":[{"id":628,"href":"https:\/\/magerubik.com\/blog\/wp-json\/wp\/v2\/posts\/305\/revisions\/628"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/magerubik.com\/blog\/wp-json\/wp\/v2\/media\/308"}],"wp:attachment":[{"href":"https:\/\/magerubik.com\/blog\/wp-json\/wp\/v2\/media?parent=305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/magerubik.com\/blog\/wp-json\/wp\/v2\/categories?post=305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/magerubik.com\/blog\/wp-json\/wp\/v2\/tags?post=305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}