useBreadcrumbStore
import { useBreadcrumbStore } from '@bbc/front-end-kit/vue/showpad'
A simple Pinia store for managing a reactive breadcrumb trail. The store has no persistence and no router awareness — consumers are responsible for wiring it into route changes or component lifecycle hooks.
Getting started
import { useBreadcrumbStore } from '@bbc/front-end-kit/vue/showpad'
const breadcrumbStore = useBreadcrumbStore()
// Set the full trail on each route change
router.afterEach((to) => {
breadcrumbStore.setBreadcrumbs(to.meta.breadcrumbs ?? [])
})
<template>
<nav>
<span v-for="(crumb, i) in breadcrumbStore.breadcrumbs" :key="i">
{{ crumb.label }}
</span>
</nav>
</template>
<script setup>
import { useBreadcrumbStore } from '@bbc/front-end-kit/vue/showpad'
const breadcrumbStore = useBreadcrumbStore()
</script>
API
State & Properties
breadcrumbs
The current breadcrumb trail.
Values: Ref<Array>
Default: []
Actions
setBreadcrumbs (newBreadcrumbs)
Replaces the entire breadcrumb trail.
Parameters:
newBreadcrumbs(Array): The new trail to set.
addBreadcrumb (breadcrumb)
Appends a single breadcrumb to the end of the trail.
Parameters:
breadcrumb(any): The breadcrumb item to append.
removeLastBreadcrumb ()
Removes the last breadcrumb from the trail. No-ops if the trail is empty.
clearBreadcrumbs ()
Empties the entire breadcrumb trail.
updateBreadcrumb (index, breadcrumb)
Replaces the breadcrumb at the given index. No-ops if the index is out of bounds.
Parameters:
index(Number): Zero-based index of the item to replace.breadcrumb(any): The replacement value.
getLastBreadcrumb ()
Returns the last breadcrumb in the trail, or undefined if the trail is empty.
Returns: The last breadcrumb item, or undefined.