В Magento 2 некоторые макеты обрабатывают файлы XML, открытые с помощью
<page.../>
корневой тег Другие открыты с
<layout.../>
корневой тег Вносит ли использование одного из приведенных выше тегов какие-либо функциональные различия в XML-файл дескриптора макета? Или это чистая витрина? Или что-то среднее.
Два примера
<!-- File: vendor/magento/module-weee/view/frontend/layout/default.xml -->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
и
<!-- File: vendor/magento/module-widget/view/adminhtml/layout/adminhtml_widget_loadoptions.xml -->
<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/layout_generic.xsd">
<layout/>
ли включить внутренние узлы файла в один и<page/>
<body/>
тот же эффект? Или я что-то упустил?Компоновка файлы , которые открываются с
<layout></layout>
являются макеты страниц , которые объявляют на каркас страницы внутри<body>
секции, например , расположение одного столбца или две колонки.Файлы макета, которые открываются с помощью,
<page></page>
являются файлами конфигурации страницы, которые добавляют контент в каркас, определенный в файле макета страницы.Вот официальный документ об этом, пожалуйста, сообщите нам, если это может быть улучшено: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/layout-types.html
источник
<layout>
и один с<page>
по этой статье .Одно отличие, которое я заметил, заключается в том, что, поскольку это каркас страницы внутри тела , вы можете ajax получить только часть html. Обычно, если вы нажмете на контроллер, вы получите всю страницу, начиная с тега. Эти контроллеры возвращают объекты страницы, созданные PageFactory, которая использует макет типа xml. Но когда вы хотите динамически загружать некоторые phtml с помощью ajax-вызовов, таких как форма фильтра, это полезно. Magento_ImportExport динамически меняет фильтры экспорта при изменении сущности (продукта, клиента). Это пример использования magento (adminhtml_export_getfilter.xml).
источник