Vuetify is a popular UI framework for Vue apps.
In this article, we’ll look at how to work with the Vuetify framework.
Breadcrumbs
The v-breadcrumbs
component lets us display a navigation helper on pages.
It can accept a Material Icons icon or text characters as a divider.
For example, we can write:
<template>
<v-container>
<v-row class="text-center">
<v-col col="12">
<v-breadcrumbs :items="items"></v-breadcrumbs>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
items: [
{
text: "Dashboard",
disabled: false,
href: "breadcrumbs_dashboard",
},
{
text: "Foo",
disabled: false,
href: "foo",
},
{
text: "Bar",
disabled: true,
href: "bar",
},
],
}),
};
</script>
We have the v-breadcrumbs
component that takes the items
prop.
The prop takes an array with objects that have the text
, disabled
, and href
props.
text
is the link text. disabled
is the disabled state of the link.
And href
is the URL of the link.
We can add a large
prop to make it large.
Custom Divider
We can change the divider to a different icon or character with the divider
property.
For example, we can write:
<template>
<v-container>
<v-row class="text-center">
<v-col col="12">
<v-breadcrumbs :items="items" divider="-"></v-breadcrumbs>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
items: [
{
text: "Dashboard",
disabled: false,
href: "breadcrumbs_dashboard",
},
{
text: "Foo",
disabled: false,
href: "foo",
},
{
text: "Bar",
disabled: true,
href: "bar",
},
],
}),
};
</script>
to add the -
character as the divider.
Icon Dividers
We can add an icon as the breadcrumb divider by writing:
<template>
<v-container>
<v-row class="text-center">
<v-col col="12">
<v-breadcrumbs :items="items">
<template v-slot:divider>
<v-icon>mdi-forward</v-icon>
</template>
</v-breadcrumbs>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
items: [
{
text: "Dashboard",
disabled: false,
href: "breadcrumbs_dashboard",
},
{
text: "Foo",
disabled: false,
href: "foo",
},
{
text: "Bar",
disabled: true,
href: "bar",
},
],
}),
};
</script>
We populate the divider
slot with the divider of our choice.
Item Slot
The item
slot lets us display the item in a custom format.
For example, we can write:
<template>
<v-container>
<v-row class="text-center">
<v-col col="12">
<v-breadcrumbs :items="items">
<template v-slot:item="{ item }">
<v-breadcrumbs-item
:href="item.href"
:disabled="item.disabled"
>{{ item.text.toUpperCase() }}</v-breadcrumbs-item>
</template>
</v-breadcrumbs>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
items: [
{
text: "Dashboard",
disabled: false,
href: "breadcrumbs_dashboard",
},
{
text: "Foo",
disabled: false,
href: "foo",
},
{
text: "Bar",
disabled: true,
href: "bar",
},
],
}),
};
</script>
We get the breadcrumb item with the item
slot prop and we set the href
and format the breadcrumb text to upper case in the slot.
Conclusion
Breadcrumbs lets us add navigation to our page easily.