A Vue.js tree navigation menu

vue-tree-navigation

A Vue.js tree navigation menu with unlimited number of levels and minimum styles included

Features:

  • unlimited number of levels
  • you can define default open level
  • focused on core functionality, only necessary styles included - just apply your own styles like I did for demo page :wink:

Installation

$ npm install vue-tree-navigation

main.js

import VueTreeNavigation from 'vue-tree-navigation';

Vue.use(VueTreeNavigation);

Usage

file.vue

<vue-tree-navigation :items="items" :defaultOpenLevel="defaultOpenLevel" />
export default {
  ...
  data() {
    return {
      items: [
        { name: 'First category', children: [
          { name: 'Category item', href: '#take-me-somewhere' },
          { name: 'Category item', href: '#take-me-somewhere' }
        ]},
        { name: 'Second category', href: '#take-me-somewhere' }
      ],
      defaultOpenLevel: 1
    }
  },
  ...
};

items Array

An array containing navigation menu items.

You don't need to specify href field. Menu item will be rendered as a simple value instead of a hyperlink in this case.

defaultOpenLevel Number

Optional. Default value is 0 (everything is closed).

Nuxt

You can use the component in your Nuxt.js project if you disable server-side rendering for your Nuxt plugin:

plugins/vue-tree-navigation.js

import Vue from 'vue';
import VueTreeNavigation from 'vue-tree-navigation';

Vue.use(VueTreeNavigation);

nuxt.config.js

module.exports = {
  ...
  plugins: [
    { src: '~plugins/vue-tree-navigation', ssr: false }
  ],
  ...
}

Developers

Install dependencies:

$ npm install

Run tests:

$ npm run test

Run tests in verbose mode:

$ npm run test:verbose

Run development server:

$ npm run dev

Build:

$ npm run build

Run demo development server:

$ cd demo
$ npm install
$ npm run dev

GitHub