All Components

Menu Overview

The Menu displays hierarchical data as a multi-level menu.

It provides rich styling for unordered lists of items and can be used for both navigation and JavaScript commands.

The Menu wrapper for Vue is a client-side wrapper for the Kendo UI Menu widget.

Basic Usage

The following example demonstrates the Menu in action.

<div id="vueapp" class="vue-app" style="height:300px">
    <kendo-menu>
        <kendo-menu-item text="Baseball">
            <kendo-menu-item text="Top News"></kendo-menu-item>
        <kendo-menu-item text="Radio Records"></kendo-menu-item>
        </kendo-menu-item>
        <kendo-menu-item text="Swimming">
            <kendo-menu-item text="Top News"></kendo-menu-item>
        <kendo-menu-item text="Radio Records"></kendo-menu-item>
        </kendo-menu-item>
    </kendo-menu>
</div>
Vue.use(LayoutInstaller);

   new Vue({ el: '#vueapp' })

Installation

To initialize the Menu, either:

Initializing with Webpack

  1. Install Kendo UI and add a theme.

    npm install --save @progress/kendo-ui
    npm install --save @progress/kendo-theme-default
  2. Install the Kendo UI Layout package for Vue.

    npm install --save @progress/kendo-layout-vue-wrapper
  3. Import the Kendo UI packages to the App component. If you use the Kendo UI components more than once in your application, add all Kendo UI-related files to the main.js file. If you use the Kendo UI components once in your application, add the Kendo UI-related files the component where they will be referred.

    import '@progress/kendo-ui'
    import '@progress/kendo-theme-default/dist/all.css'
    
    import { Menu, LayoutInstaller } from '@progress/kendo-layout-vue-wrapper'
    
    Vue.use(LayoutInstaller)
    
    new Vue({
       el: '#app',
       components: {
           Menu
       }
    })

Functionality and Features

Events

The following example demonstrates basic Menu events. You can subscribe to all Menu events by the handler name.

<div id="vueapp" class="vue-app" style="height:300px">
    <kendo-menu @select="onSelect">
        <li>
        Item 1
            <ul>
                <li>Sub Item 1
                    <ul>
                        <li>Sub Item 1.1</li>
                        <li>Sub Item 1.2</li>
                        <li>Sub Item 1.3</li>
                    </ul>
                </li>
                <li>Sub Item 2</li>
                <li>Sub Item 3</li>
            </ul>
        </li>
        <li>
            Item 2
            <ul>
                <li>Sub Item 1</li>
                <li>Sub Item 2</li>
                <li>Sub Item 3</li>
            </ul>
        </li>
    </kendo-menu>
</div>
Vue.use(LayoutInstaller);
new Vue({
    el: '#vueapp',
    methods: {
            onSelect: function (e) {
                var currentItemText = $(e.item.firstChild).text().trim();
                console.log(currentItemText + " clicked.");
            }
    }
})
In this article