小试牛刀,用electron+vue3做了一个文件归纳程序~

记得很多年以前,学过C#的winform,其实一开始入行的时候从来没想过B/S架构的占有率会这么大,当时只是觉得能做一个窗体程序出来很装*。今天是我做Java程序员的第好几个年头,不知为何,就特别想写一个能供自己使用的窗体程序。考虑到我电脑的文件比较乱,文档、视频、图片基本都是乱放的,很难找到,于是决定写一个用来归纳这些文件的程序。

在技术的选择上,我原本是打算使用曾经学习过的winform,但是准备开始写的时候才发现,有关于C#的记忆早已被时间冲刷,甚至无法打印出那句"hello world!"。不过我是写过前端代码的,也从同事那里了解过一些跨平台框架,其中印象最深的是Electron,随后也简单看了一些教程,发现这东西真是极易上手。最后决定使用Electron+Vue3实现我自己的需求。

Electron介绍

Electron项目分为三部分:主进程、预渲染进程、渲染进程,主进程是Electron程序的入口,负责与操作系统做交互;预渲染进程可以理解为主进程与渲染进程链接的桥梁;渲染进程就是窗体程序中的具体页面显示。

如果在页面上想要实现上传文件或读取文件,由于渲染进程和操作系统是隔离开的,所以就需要通过预渲染进程链接到主进程,再由主进程完成具体的操作并返回处理结果给渲染视图(双向链接)。

1、 在主进程中,可以定义方法处理由预渲染进程发送过来的请求:

在上图中,单引号中的内容就是渲染进程向预渲染进程中请求的方法,主进程再通过hanle来处理这些方法。

2、 在预渲染进程中,可以定义方法让渲染进程调用:

在预渲染进程中,单引号中的内容与主进程handle中的内容对应,通过invoke调用主进程指定的方法。

3、 在渲染进程中,调用预渲染进程定义的方法:

window.api.init()就对应预渲染中定义的init方法,成功调用后,预渲染进程会将主进程返回的处理结果返回给渲染进程。

开发Electron基本就是这么一套流程,剩下的就是一些配置和渲染进程的代码开发,上手还是很快的。

程序界面

界面比较简单,整体的样式是AI生成的,只有一些比较基础的功能,比如文件分类管理、文件拖拽上传、上传进度条 等,使用Vue3实现。

不同的文件类型右击会有不同的功能菜单,如果是视频文件,也实现了本地视频的播放功能

总结:Electron提供了一种桌面软件开发的实现方案,本质上是内置了一个浏览器,通过预渲染进程与主进程通信实现调用操作系统API。对于有前端开发经验的同学来说,容易上手,降低学习成本。但是Electron打包的程序体积相对较大。

相关推荐
Можно8 分钟前
从零开始:Vue 框架安装全指南
前端·javascript·vue.js
蜗牛攻城狮34 分钟前
CSS中的 `dvh` 与 `vh`: 深入理解视口单位
前端·css
啥都不懂的小小白40 分钟前
Shell脚本编程入门:从零基础到实战掌握
前端·shell
东东5161 小时前
校园短期闲置资源置换平台 ssm+vue
java·前端·javascript·vue.js·毕业设计·毕设
qq_419854051 小时前
富文本编辑器
前端
悟能不能悟1 小时前
VUE的国际化,怎么实现
前端·javascript·vue.js
Mr Xu_1 小时前
解决 Vue + Axios 热更新导致响应拦截器重复注册的问题
前端·javascript·vue.js
岁岁种桃花儿1 小时前
NodeJs从入门到上天:什么是Node.js
前端·node.js
colicode1 小时前
语音报警接口开发参考:紧急情况下快速调用语音API发送安全警报
前端·语音识别
夏河始溢1 小时前
一八四、Zustand 状态管理详解、与 Redux、MobX 的对比分析
前端·javascript·react.js·状态管理·zustand