右键菜单功能
使用方式
- 安装
yarn add v-contextmenus
- 在 vues 的 state 中添加共享状态与方法
请先确保你有使用 vuex
{
state: {
contextmenus: {
show: true
data: {},
evt: null
}
},
mutaions: {
setContextmenu (state, data) {
if (Object.keys(data).length > 1) {
state.contextmenu = data
} else {
state.contextmenu.show = data.show
}
}
}
}
- 在页面中调用组件
<template>
<main>
<div @contextmenu.prevent="rightClick"></div>
<VContextmenus></VContextmenus>
</main>
</template>
<script>
import store from '../assets/js/store'
import VContextmenus from '../components/VContextmenus'
export default {
components: {
VContextmenus
},
data () {
return {
menu: [ ... ]
}
},
methods: {
rightClick (evt) {
store.commit('setContextmenu', {
data: this.menu, evt
})
}
}
}
</script>
事件方法
- store.commit('setContextmenu', {data, evt})
@data 菜单内容
@evt 鼠标事件
展示菜单功能
完整示例
将 demo 文件放到你的 vue webpack 项目中,替换其下的 src