vue怎么实现自定义全局右键菜单
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本篇内容介绍了"vue怎么实现自定义全局右键菜单"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果如
千家信息网最后更新 2025年01月23日vue怎么实现自定义全局右键菜单
本篇内容介绍了"vue怎么实现自定义全局右键菜单"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
效果如图所示:
注意:
需要在项目中找到页面整体布局的组件,比如项目使用Home.vue作为整个项目的公共布局,将根元素定位设置成relative,使右键菜单相对于其进行定位。
本文的右键菜单主要使用vuex实现
一、vuex中定义全局状态用于管理右键菜单
export default { /** * menuContent格式: * [ * { * name: '新建文件', // 操作名 * method: 'createDirectory', // 需要执行的对应组件中的方法 * disabled: true // 是否禁用,可以根据页面具体逻辑进行调整 * } * ] * * * 整体右键菜单采用绝对定位,所以clientX、clientY代表是left和top定位 */ state: { menuContent: [], // 右键菜单内容 clientX: '', // left clientY: '', // top displayContextMenu: false // 是否展示右键菜单 }, mutations: { SET_CONTEXT_MENU: (state, payload) => { state.menuContent = payload.menuContent; state.clientX = payload.clientX; state.clientY = payload.clientY; state.displayContextMenu = payload.displayContextMenu; }, }}
二、定义公共组件ContextMenu.vue
三、在组件中使用
import { mapState } from 'vuex';// ...computed: { ...mapState(['contextMenu'])},created(){ bus.$on('operateDirectory', (param) => { // 点击右键菜单时,应触发组件内的同名方法,首先应判断该方法是否在本组件内存在,存在则调用 if(this[param]){ this[param](); } });},// ...methods: { showContextMenu(event, data) { event.preventDefault(); // 阻止浏览器的默认事件 const menuContent = { menuContent: [ { icon: "el-icon-upload2", name: "运行", method: "run", }, { icon: "el-icon-refresh", name: "编辑", method: "editConfig", }, { icon: "el-icon-refresh", name: "添加", method: "addCommond", }, { icon: "el-icon-refresh", name: "删除", method: "deleteConfig", }, ], clientX: event.clientX, clientY: event.clientY, displayContextMenu: true, }; this.$store.commit("SET_CONTEXT_MENU", menuContent); // 再次点击页面,右键菜单消失 _document.onclick = (event) => { this.$store.commit("SET_CONTEXT_MENU", { displayContextMenu: false, }); }; }, run(){ // ... }, editConfig(){ // ... }, addCommond(){ // ... }, deleteConfig(){ // ... }}
"vue怎么实现自定义全局右键菜单"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
菜单
组件
定位
全局
内容
方法
页面
项目
布局
整体
更多
知识
实用
学有所成
接下来
事件
代表
元素
内存
再次
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
不支持服务器的版本
英国宫颈癌数据库
思政课 网络技术
html网站用什么数据库
校党委网络安全工作责任制
嘉定区大型软件开发售后保障
网络安全主要侧重点有哪些
数据库有主码的图
滨湖区互联网智能科技产品优势
免费网络安全法
培训班学软件开发好吗
网络安全信息周是干嘛的
桓台专业软件开发价格
网络安全 大纲
单元格自动匹配数据库
网络服务器架设的问题
数据库开发设置选哪个
randex数据库
量子软件开发平台
遍历数据库
成都网络安全创新服务基地
软件开发中的岗位职责
数据库系统的安全的重要性的
西藏旅游网络技术有限公司
合肥物业管理软件开发外包公司
正联北京网络技术有限公司
服务器usb口可以挂移动硬盘吗
魔兽9.0国服服务器排名
内蒙古会计软件开发条件
专科学大数据好还是软件开发