小试牛刀,用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打包的程序体积相对较大。

相关推荐
子兮曰7 小时前
async/await高级模式:async迭代器、错误边界与并发控制
前端·javascript·github
恋猫de小郭8 小时前
2026 Flutter VS React Native ,同时在 AI 时代 VS Native 开发,你没见过的版本
android·前端·flutter
GIS之路10 小时前
ArcGIS Pro 中的 Notebooks 入门
前端
IT_陈寒11 小时前
React状态管理终极对决:Redux vs Context API谁更胜一筹?
前端·人工智能·后端
Kagol12 小时前
TinyVue 支持 Skills 啦!现在你可以让 AI 使用 TinyVue 组件搭建项目
前端·agent·ai编程
柳杉12 小时前
从零打造 AI 全球趋势监测大屏
前端·javascript·aigc
simple_lau12 小时前
Cursor配置MasterGo MCP:一键读取设计稿生成高还原度前端代码
前端·javascript·vue.js
睡不着先生12 小时前
如何设计一个真正可扩展的表单生成器?
前端·javascript·vue.js
天蓝色的鱼鱼12 小时前
模块化与组件化:90%的前端开发者都没搞懂的本质区别
前端·架构·代码规范
明君8799712 小时前
Flutter 如何给图片添加多行文字水印
前端·flutter