Magento2 : referenceContainer와 referenceBlock의 차이점은 무엇입니까?


23

magento2의 레이아웃에는 엔티티 referenceBlockreferenceContainer엔티티가 모두 사용됩니다.
그들 사이의 주요 차이점은 무엇이며 어떻게 이러한 엔티티를 magento1. *에 연결할 수 있습니까?

답변:


38

기본적으로 컨테이너는 core/text_listmagento 1 의 블록 과 동일합니다 .
"철학적으로"동일하게 작동하지만 유일한 차이점은 containers다른 자식 블록 만 지원하는 미리 정의 된 블록입니다.
몇 가지 예는 content, after.body.start, header-wrapper.
예를 들어에서 정의 된 모든 컨테이너를 볼 수 있습니다 Magento/Theme/view/base/page_layout/*.

의 예는 다음과 같습니다 empty.xml.

<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_layout.xsd">
    <container name="root">
        <container name="after.body.start" as="after.body.start" before="-" label="Page Top"/>
        <container name="page.wrapper" as="page_wrapper" htmlTag="div" htmlClass="page-wrapper">
            <container name="global.notices" as="global_notices" before="-"/>
            <container name="main.content" htmlTag="main" htmlId="maincontent" htmlClass="page-main">
                <container name="columns.top" label="Before Main Columns"/>
                <container name="columns" htmlTag="div" htmlClass="columns">
                    <container name="main" label="Main Content Container" htmlTag="div" htmlClass="column main"/>
                </container>
            </container>
            <container name="page.bottom" as="page_bottom" label="Before Page Footer Container" after="main.content" htmlTag="div" htmlClass="page-bottom"/>
            <container name="before.body.end" as="before_body_end" after="-" label="Page Bottom"/>
        </container>
    </container>
</layout>

기본적으로에 <container name="..." />의해 액세스 가능한 것으로 정의 된 것 referenceContainer. 로 선언 될 <block .... />수있는 것referenceBlock

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.