Edit tutorial

Named Slots

In simple cases, projection allows content from the parent component to be projected into the child component. In more complex cases there may be more than one content slot that needs to be projected. Having multiple content slots is achieved by naming them.

Example

In this example, we have created <Collapsable> component that toggles between open and closed states. Currently, when the <Collapsable> is closed it shows content that was implemented within <Collapsable>. Change that to an additional <Slot> to project the q:slot="closed" content from the parent instead.

Unprojected Slots

We have added console statements to show when individual components re-render. Notice that the <App> component never re-renders on the client. Also notice that the <Collapsable> projects only one content at a time. This means that when <App> renders on the server it has to produce both default as well as closed content that Qwik must serialize. The benefit is that when <Collapsable> toggles between open and closed states, it does not need to re-render the <App> component to recover the content that was projected into it.

Building preview

Refreshing App output

Compiling the latest client and SSR result for your current code.

No console activity yet

Interact with the app or trigger a render to see client and SSR messages here.