Answers:
ui_component目录包含后端中使用的网格(或表单)的xml定义。在布局文件中,您可以通过以下方式引用ui组件:
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<update handle="styles"/>
<body>
<referenceContainer name="content">
<uiComponent name="sample_demolist_listing"/>
</referenceContainer>
</body>
</page>
然后,这将加载文件:view / adminhtml / ui_component / sample_demolist_listing.xml,在此处定义(对于网格)要使用的数据源,可以显示的字段,要过滤的字段以及大规模操作。请参阅https://github.com/Genmato/M2_Sample/blob/7c0c771c4d66f2ea4eec285bfb9f8ad5d1c67999/view/adminhtml/uihtml/ui_component/sample_demolist_listing.xml(此处包含的文件有点大)。
ui_component xml中引用的数据源是通过di.xml通过以下方式创建的:
<type name="Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory">
<arguments>
<argument name="collections" xsi:type="array">
<item name="sample_demolist_listing_data_source" xsi:type="string">Genmato\Sample\Model\ResourceModel\Demo\Grid\Collection</item>
</argument>
</arguments>
</type>
在这种情况下,将使用来自的集合Model\ResourceModel\Demo\Grid\Collection
。
有关在您自己的模块中的用法,请参见https://github.com/Genmato/M2_Sample/releases/tag/0.7.6。
此文件夹包含基于UI组件的UI的声明(如网格和表单)。当前,它主要用于adminhtml区域,因为管理面板具有许多具有相同结构的CRUD接口。
管理面板中的所有新界面都将使用UI组件构建,并且它也是模块开发的推荐技术。