@wuild/vue-contextmenu
@wuild/vue-contextmenu
A customizable context menu component for Vue 3.
Installation
npm install @wuild/vue-contextmenu
# or
yarn add @wuild/vue-contextmenu
Usage
Global Registration
import { createApp } from 'vue'
import App from './App.vue'
import ContextMenu from '@wuild/vue-contextmenu'
// Import the CSS
import '@wuild/vue-contextmenu/dist/style.css'
const app = createApp(App)
app.use(ContextMenu)
app.mount('#app')
Then in your components:
// In your Vue component
export default {
methods: {
showContextMenu(event) {
this.$contextmenu.show({
x: event.clientX,
y: event.clientY,
items: [
{
label: 'Item 1',
action: () => console.log('Item 1 clicked')
},
{
label: 'Item 2',
action: () => console.log('Item 2 clicked')
},
this.$contextmenu.divider(),
{
label: 'Disabled Item',
disabled: true
},
{
label: 'Submenu',
submenu: [
{
label: 'Submenu Item 1',
action: () => console.log('Submenu Item 1 clicked')
},
{
label: 'Submenu Item 2',
action: () => console.log('Submenu Item 2 clicked')
}
]
}
]
})
}
}
}
Composition API
<script setup>
import { useContextMenu } from '@wuild/vue-contextmenu'
const { onContextMenu, divider } = useContextMenu()
function handleContextMenu(event) {
onContextMenu(event, [
{
label: 'Item 1',
action: () => console.log('Item 1 clicked')
},
{
label: 'Item 2',
action: () => console.log('Item 2 clicked')
},
divider(),
{
label: 'Disabled Item',
disabled: true
},
{
label: 'Submenu',
submenu: [
{
label: 'Submenu Item 1',
action: () => console.log('Submenu Item 1 clicked')
},
{
label: 'Submenu Item 2',
action: () => console.log('Submenu Item 2 clicked')
}
]
}
])
}
</script>
<template>
<div @contextmenu.prevent="handleContextMenu">
Right-click me
</div>
</template>
API
ContextMenu Object
show(options): Shows the context menuoptions.x: X positionoptions.y: Y positionoptions.items: Array of menu itemsoptions.customClass: Optional custom CSS classoptions.zIndex: Optional z-index value
hide(): Hides the context menudivider(): Returns a divider item
Menu Item Properties
label: Text to displayicon: Optional icon classaction: Function to execute when clickedsubmenu: Array of submenu itemsdisabled: Boolean to disable the itemshortcut: Optional shortcut text to displaydivider: Boolean to render as a divider
License
MIT
Related Packages
@ozankurt/context-menu
Framework agnostic right click context menu with a zero dependency TypeScript co...
0
2
vue-custom-context-menu
A Vue.js plugin for building custom ๐ฑ Context Menus. Automatically adjusts posit...
3,581
6
@imcyk/context-menu
ๅบไบvue3+vite+ts็ๅณ้ฎ่ๅ็ปไปถ๏ผ้็จไบ็ปๅๅผapiๅ้้กนๅผapiใ
674
0
Version History
| Version | Released | Vue | License |
|---|---|---|---|
| 1.0.1 | ^3.0.0 | MIT | |
| 1.0.0 | ^3.0.0 | MIT |