@pwp-app/vue-context-menu v1.3.1
vue-context-menu
A context menu component for Vue users.
Install
$ npm install @pwp-app/vue-context-menu
Usage
Import to your project:
import VueContextMenu from '@pwp-app/vue-context-menu';
Vue.use(VueContextMenu, {
useItem: true, // Also register ContextMenuItem component
mobileSupport: true, // Enable mobile gesture support
touchTimeout: 600, // optional, default value is 600, decide how long the menu will show after touch
});
Also you can set an alias to resolve @pwp-app/vue-context-menu
to vue-context-menu
.
Then you can use it like this:
<template>
<div id="app">
<div class="container" v-context="'contextMenu'"></div>
<ContextMenu
ref="contextMenu"
@item-clicked="itemClicked"
>
<ContextMenuItem name="1">1</ContextMenuItem>
<ContextMenuItem name="2">2</ContextMenuItem>
<ContextMenuItem name="3">3</ContextMenuItem>
</ContextMenu>
</div>
</template>
The v-context
is the directive to set the trigger, it should be a string
and should be the same as the ref
you've bound to ContextMenu
.
itemClicked
is a function like this:
itemClicked(name) {
console.log('clicked', name);
},
The name
is the name you've already bound to ContextMenuItem
.
If you wanna bind click event in this way, you should import ContextMenuItem
as well, and be sure you've already set a name to ContextMenuItem
.
Also you can bind a function to click.native
of ContextMenuItem
, the name
property is not required in this way, but this is NOT recommended.
ContextMenuItem
is a optional component, if you don't like it, you can write your own things and put them under the ContextMenu
.
Props
ContextMenu
As for ContextMenu
, it has these two props:
width
Decide the width of menu.
type: Number
default: 120
overflow
If set to false, the menu will always in the viewport and never overflow to the outside.
type: Boolean
default: false
manuallyClose
If you don't want the menu automatically close after you clicked the menu item, you can set this prop to true
.
type: Boolean
default: false
ContextMenuItem
As for ContextMenuItem
, it has these two props:
name
Be used to judge which item has been clicked.
type: String
License
MIT