Vue3+Electron实现QQ导航菜单/新开窗口
csdh11 2025-01-11 11:45 1 浏览
今天给大家分享vue3.x和electron11实现类似QQ顶部导航栏新开多窗口功能。
项目中的顶部弹窗用到了vue3自定义组件v3layer和electron新建窗口两种方式。
如上图:通过v3layer来实现弹窗功能。
vue3.0系列:Vue3自定义PC端弹窗组件V3Layer
<!-- ……设置模板 -->
<v3-layer v-model="isShowSettingLayer"
title="<i class='iconfont icon-shezhi1'></i> 设置页面"
layerStyle="background:#f9f9f9"
shade="false"
:area="['550px', '450px']"
xclose
dragOut="true"
resize
:maximize="true"
>
<SettingPage @logout="onLogout" />
</v3-layer>
调用非常简单,支持自定义插槽内容。其中SettingPage是一个外部.vue页面。
像上面这些弹窗,则是通过electron新开窗口来实现功能。
// 关于窗口
const handleAboutWin = () => {
createWin({
title: '关于',
route: '/about',
width: 380,
height: 280,
resize: false,
parent: winCfg.window.id,
modal: true,
})
}
// 换肤窗口
const handleSkinWin = () => {
createWin({
title: '换肤',
route: '/skin',
width: 720,
height: 475,
resize: false,
})
}
// 朋友圈窗口
const handleFZoneWin = () => {
createWin({
title: '朋友圈',
route: '/fzone',
width: 550,
height: 700,
resize: false,
})
}
// 界面管理器窗口
const handleUIManager = () => {
createWin({
title: '界面管理器',
route: '/uimanager',
width: 400,
height: 475,
resize: false,
parent: winCfg.window.id,
modal: true,
})
}
// 置顶
const handleAlwaysTop = () => {
if(data.isAlwaysOnTop) {
win.setAlwaysOnTop(false)
data.isAlwaysOnTop = false
}else {
win.setAlwaysOnTop(true)
data.isAlwaysOnTop = true
}
}
实现起来也非常简单,通过调用createWin函数来创建新窗口。
传入的route即为配置的路由url地址。
支持route地址带参,另外还支持自定义data参数配置。
/**
* @desc 创建新窗口
* @param args {object} {width: 500, height: 300, route: '/me', ...}
*/
export function createWin(args) {
ipcRenderer.send('win-create', args)
}
这样就实现了调用createWin方法就可以新建一个窗体。
ok,今天的分享就暂时到这里了。希望以上的内容对大家有所帮助哈!
相关推荐
- ArcGIS干货教程:DEM数字高程模型数据的生成
-
1、概述现在ArcGIS在规划行业的使用逐渐流行起来,多规合一、地理设计、甚至还有大数据、编程设计等等各种高大上无不与ArcGIS多少有点关系,然而大多数行业小伙伴作为一个普通的规划师,只是想用Ar...
- Google推出的首款动态图标字体 如何在设计和开发中使用?
-
Anicons是GoogleDesign和Typogram合作推出的全球第一款彩色图标字体,它是目前最先进的两种字体技术--可变字体和彩色字体的结合的首次实践。Anicons字体自带...
- KWGT : 如果你想随心定制桌面小部件,试试它吧 Android
-
有人说Android在于折腾,而为了让这「机器人」达到美与实用的平衡点,各大定制界面开发者使尽百变招数,花样也层出不穷。其中,KustomWidget(KWGT)就是Android上最精美的...
- 颜色查找表 LUTs及其使用
-
1、什么是LUT?颜色查找表(colorlookuptables,简称LUT)是一个表格,其中包含Photoshop的说明,如何将图像中的原始颜色重新映射到不同的特定颜色,以创建特定的外观,图像...
- 抖音品质建设 - iOS启动优化《原理篇》
-
前言启动是App给用户的第一印象,启动越慢用户流失的概率就越高,良好的启动速度是用户体验不可缺少的一环。启动优化涉及到的知识点非常多面也很广,一篇文章难以包含全部,所以拆分成两部分:原理和实践。本...
- win10:手把手教你怎么打开windows media player
-
通常我们安装好win10系统后,一些网友说他们无法打开WindowsMediaPlayer,也不知道怎么打开它。今天,总裁小编我将教您怎么在win10系统中打开WindowsMediaPl...
- Origami动效制作-入门必看(附3个练习案例)
-
数十万互联网从业者的共同关注!作者:青溪Joanna微信公众号:qingxizhaji(青溪札记)作者授权早读课发表,转载请联系作者。欢迎投稿到早读课,投稿邮箱:mm@zaodula.com网上关于O...
- 30个4GB内存Rackspace云服务器45分钟内可运行1万个Docker容器
-
虽然应用程序的可移植性(即能够在任何一个主机上运行相同的应用程序)仍是采用Linux容器的主要动力,但优化服务器的利用率这另一个关键的优势能够使得你仅占用计算机的很少部分的计算。当然,对于像PROD这...
- 在Photoshop中绘制虚线的多种实用方法总结
-
PS虚线怎么画(HowtoDrawDottedLinesinPhotoshop) 在图形设计中,虚线是一种常见的视觉元素,广泛应用于设计和排版。无论是用于分隔不同的内容,还是作为装饰元...
- 第三章图层、属性设置
-
F本章目标&了解图层的概念和应用&掌握图层的新建、命名、删除、和设置为当前的方法&掌握图层的颜色、线型及线宽设置方法&学会使用图层的开/关、冻结/解冻、锁定/解锁...
- 非常好用的作图软件origin实用问题集锦(4)
-
16.请问在origin中如何设置图片大小?杂志要求图片长5cm,宽4cm,而且对图片中字号、线粗有要求,如果只是在输出时设置图片大小,那图片中字号、线粗不是改变了吗?Answer:在图上的灰色...
- 如意玲珑成熟度再提升,三大发行版支持教程来啦!
-
前期,我们已分别发布如意玲珑在deepinV23与UOSV20、openEuler24.03发行版的操作指南,本文,我们将为大家详细介绍Ubuntu24.04、Debian12、op...
- Windows电脑文件的扩展名(后缀名)有哪些,有什么用?
-
文件扩展名(filenameextension)也称为文件的后缀名,是操作系统用来标记文件类型的一种机制,在Windows系统下,通俗易懂的来说就是扩展名可以告诉操作系统默认用什么软件打开文件。...
- UG NX中英文词汇翻译对照,已整理成文档
-
大家好,我是星辉。虽然UGNX软件可以选择安装中文版本,但是里面依旧会有很多英文词汇,很多新手看到英文就头疼不懂意思。今天我给大家整理好了使用UGNX软件中基本需要明白英文含义的翻译对照文档,有需...
- layui-icon各种常用动态图标
-
<buttonid="btnPrintDetail"class="<br/>layui-btnicon-btn"><iclass="...
- 一周热门
-
-
一文读懂关于MySQL Datetime字段允许插入0000-00-00无效日期
-
MySQL数据库关于表的一系列操作 mysql 表操作
-
IDC机房服务器托管可提供的服务
-
新版腾讯QQ更新Windows 9.9.7、Mac 6.9.25、Linux 3.2.5版本
-
一文看懂mysql时间函数now()、current_timestamp() 和sysdate()
-
一款全能的看图软件,速度快、功能强、免费用
-
深度测评:Pixave 和图片管理之间的距离(二)
-
Boston Dynamics Founder to Attend the 2024 T-EDGE Conference
-
每天一个入坑小技巧:MySql和oracle语法区别(今日追加)
-
Serv-u 提权
-
- 最近发表
- 标签列表
-
- mysql 时间索引 (31)
- mydisktest_v298 (34)
- document.appendchild (35)
- 头像打包下载 (61)
- acmecadconverter_8.52绿色版 (39)
- oracle timestamp比较大小 (28)
- word文档批量处理大师破解版 (36)
- server2016安装密钥 (33)
- mysql 昨天的日期 (37)
- 加密与解密第四版pdf (30)
- jemeter官网 (31)
- parsevideo (33)
- 个人网站源码 (37)
- exe4j_java_home (30)
- centos7.4下载 (33)
- xlsx.full.min.js下载 (32)
- 深度学习 pdf (28)
- mysql 查询今天的数据 (34)
- intouch2014r2sp1永久授权 (36)
- 先锋影音源资2019 (35)
- usb2.0-serial驱动下载 (30)
- vs2010官网 (31)
- python核心编程第四版pdf (32)
- jdk1.8.0_191下载 (33)
- layer icon (32)