vue.js – Using Named Slots

Named slots work similarly to single slots but instead allow you to distribute content to different regions within your child component template.

Take the page component from the previous example but modify it’s template so it is as follows:

<html>
    <head>
        <title>Page Title</title>
    </head>
    <body>
        <aside>
            <slot name="sidebar"></slot>
        </aside>
        <main>
            <slot name="content"></slot>
        </main>
    </body>
</html>

When using the page component we can now determine where content is placed via the slot attribute:

<page>
    <p slot="sidebar">This is sidebar content.</p>
    <article slot="content"></article>
</page>

The resulting page will be:

<html>
    <head>
        <title>Page Title</title>
    </head>
    <body>
        <aside>
            <p>This is sidebar content.</p>
        </aside>
        <main>
            <article></article>
        </main>
    </body>
</html>

If a slot is defined without a name attribute then any content which is placed within component tags not specifying a slot attribute will be placed into that slot.

See the multi insertion example on the Vue.js official docs.

if you want to reproduce, please indicate the source:
vue.js – Using Named Slots - CodeDay