Skip to content

Demo

Basic

Alignment

Variants

Menu (without arrow)


Install

bash
npm i @vuesimple/vs-menu

Usage

html
<template>
  <vs-menu :items="items" v-model="selectedItem" @item-selected="onItemSelected">Menu</vs-menu>
</template>

<script>
  import VsMenu from '@vuesimple/vs-menu';

  export default {
    components: {
      VsMenu,
    },

    data() {
      return {
        items: [
          { label: 'Item 1', key: 'item_1' },
          { label: 'Item 2', key: 'item_2' },
          { label: 'Item 3', key: 'item_3' },
          { label: 'Item 4', key: 'item_4', disabled: true },
          { label: 'Item 5', key: 'item_5' },
        ],
        selectedItem: '',
      };
    },

    methods: {
      onItemSelected(item) {
        console.info('Selected Item:', item);
      },
    },
  };
</script>

CDN

html
<script src="https://cdn.jsdelivr.net/npm/@vuesimple/vs-menu@3.1.6/dist/index.min.js"></script>
javascript
// Main/Entry file
app.use(VsMenu.plugin);
html
<template>
  <vs-menu :items="items" v-model="selectedItem" @item-selected="onItemSelected">Menu</vs-menu>
</template>

<script>
  export default {
    data() {
      return {
        items: [
          { label: 'Item 1', key: 'item_1' },
          { label: 'Item 2', key: 'item_2' },
          { label: 'Item 3', key: 'item_3' },
          { label: 'Item 4', key: 'item_4', disabled: true },
          { label: 'Item 5', key: 'item_5' },
        ],
        selectedItem: '',
      };
    },

    methods: {
      onItemSelected(item) {
        console.info('Selected Item:', item);
      },
    },
  };
</script>

Props

NameTypeDefaultDescription
itemsArray of Objects-Available: {label: "Item 1", key: "item_1" disabled: true}.
variantString-Type of button to be shown. (default, primary, secondary, warning, danger, success, light).
v-modelArray of Objects-Returns the selected item.
alignmentStringleftLeft align the menu. Available: left & right.
sizeStringmediumSize of Menu button. Available: small, medium & large.
fillBooleanfalseFill the Menu button.
isRoundBooleanfalseMake the Menu button round.
disabledBooleanfalseTo disable the Menu button.
hide-arrowBooleanfalseTo hide arrow in menu.

Events

NameDescription
item-selectedEmitted when the menu closes and an item is selected.

Slots

You can define own item markup via #slot-name:

NameDescription
(default)Holds the menu button text
menuHolds the menu dropdown content.
itemHolds the menu dropdown content line item. Access it via item