Skip to content

Scrum/vue-2-breadcrumbs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Dec 12, 2022
f247b99 · Dec 12, 2022
Dec 9, 2022
Jan 26, 2021
Jan 22, 2022
Dec 12, 2022
May 14, 2020
Jun 20, 2019
Dec 9, 2022
May 14, 2020
May 14, 2020
Nov 21, 2019
May 14, 2020
Apr 16, 2021
Jun 3, 2020
May 14, 2020
Dec 12, 2022
Jan 29, 2019
Dec 12, 2022
Dec 12, 2022
Apr 16, 2021
May 14, 2020
Jun 3, 2020
May 14, 2020

Repository files navigation

breadcrumbs

Vue breadcrumbs builds on the official vue-router package to provide simple breadcrumbs. Demo

Actions Statusvue2nodenpm versionDependency StatusXO code styleCoveralls status

npm downloadsnpmsize

Support

  • Support Nuxjs (example)
  • Support SSR
  • Setting parent route without need to actually nest it in children array
  • Customized template
  • Dynamic breadcrumbs
  • Dynamic parent
  • Dynamic label
  • Shorthand labeling (breadcrumb: 'Page Label')
  • Sub-routing

Install

$ npm install vue-2-breadcrumbs

Note: This project is compatible with node v10+

Usage

import Vue from 'vue';
import VueBreadcrumbs from 'vue-2-breadcrumbs';
import App from './App.vue';

Vue.use(VueBreadcrumbs);

Note: After that <Breadcrumbs/> component would be at your disposal.

Meta in router

import Vue from 'vue';
import VueRouter from 'vue-router';

Vue.use(VueRouter);

const router = new VueRouter({
  routes: [
    {
      path: '/',
      name: 'Home',
      component: { template: '<h2>Home</h2>' },
      meta: {
        breadcrumb: 'Home'
      }
    },
    {
      path: '/params',
      name: 'Params',
      component: { template: '<h2>Params</h2>' },
      meta: {
        breadcrumb: routeParams => `route params id: ${routeParams.id}`
      }
    },
    {
      path: '/context',
      name: 'Context',
      component: { template: '<h2>Context</h2>' },
      meta: {
        breadcrumb() {
            const { name } = this.$route;
            return `name "${name}" of context route`;
        }
      }
    },
    {
      path: '/parent',
      component: { template: '<router-view/>' },
      meta: {
        breadcrumb: {
          label: 'Parent to Params',
          parent: 'Params'
        }
      },
      {
        name: 'dynamic-parent',
        path: '/dynamic-parent',
        component: { template: '<h2>Dynamic Parent</h2>' },
        meta: {
          breadcrumb() {
            const { name } = this.$route;

            return {
              label: name,
              parent: 'settings'
            };
          }
        }
    }
  ]
});

Options

An options object can also be passed into the plugin to specify your own template and rendering methods if desired. For example:

import Vue from 'vue';
import VueBreadcrumbs from 'vue-2-breadcrumbs';

Vue.use(VueBreadcrumbs, {
  template:
    '        <nav v-if="$breadcrumbs.length" aria-label="breadcrumb">\n' +
    '            <ol class="breadcrumb">\n' +
    '                <li v-for="(crumb, key) in $breadcrumbs" v-if="crumb.meta.breadcrumb" :key="key" class="breadcrumb-item active" aria-current="page">\n' +
    '                    <router-link :to="{ path: getPath(crumb) }">{{ getBreadcrumb(crumb.meta.breadcrumb) }}</router-link>' +
    '                </li>\n' +
    '            </ol>\n' +
    '        </nav>'
});