Vue 3 is in beta and it’s subject to change.
Vue 3 is the up and coming version of Vue front end framework.
It builds on the popularity and ease of use of Vue 2.
In this article, we’ll look at how to use slots to populate content with Vue 3.
We can name our slots so that we can have multiple slots in one component.
For instance, we can write:
<!DOCTYPE html>
<html lang="en">
<head>
<title>App</title>
<script src="https://unpkg.com/vue@next"></script>
</head>
<body>
<div id="app">
<blog-post>
<template v-slot:header>
<h1>header</h1>
</template>
<template v-slot:default>
<p>lorem ipsum.</p>
</template>
<template v-slot:footer>
<p>footer</p>
</template>
</blog-post>
</div>
<script>
const app = Vue.createApp({});
app.component("blog-post", {
template: `
<header>
<slot name="header"></slot>
</header>
<main>
<slot></slot>
</main>
<footer>
<slot name="footer"></slot>
</footer>
`
});
app.mount("#app");
</script>
</body>
</html>
The blog-post
component has the header, main, and footer elements.
Inside each, they have their own slots.
We name the top slot
with the name header
.
And we named the bottom slot
with the name footer
#technology #programming #javascript #vue #vuejs