使用electron+vue开发一个跨平台todolist(便签)桌面应用

使用electron+vue开发一个跨平台todolist(便签)桌面应用

# 1

最近一直在使用electron开发桌面应用,对于一个web开发者来说,html+javascript+css的开发体验让我非常舒服。之前我一直简单的以为electron只是张网页加个壳,和那些号称跨平台的运行在手机上的webapp是一个套路。直到我真的需要开发一个跨平台桌面应用的时候,我又认真的尝试了一下electron,我开始意识到:这才是我理想中的跨平台桌面应用开发的最终形态,它简直太优秀了。

# 2

在使用electron期间,我顺便写了一个简单的todolist(便签)应用,用于学习和尝试;项目地址:https://github.com/xiajingren/xhznl-todo-list 界面参考了小黄条便签。它目前的功能还非常简单,但是包含了很多我使用electron时遇到问题,这也是electron新手都很可能遇到的,也算是一个技术总结吧;比如:

  • electron无边框透明窗口/拖拽/置顶/闪烁问题

  • electron软件开机自启动

  • electron软件单实例运行

  • electron窗口的鼠标穿透/部分穿透

  • electron软件打包

  • electron软件自动更新(GitHub)

  • electron中使用本地数据库

  • electron中数据导出为excel文件

  • 等等……

以下是项目README:

# 3

xhznl-todo-list

✨一个使用 electron + vue + electron-builder 开发的跨平台 todo-list 桌面应用

相关技术

electron 9.x

vue 2.x

vue-cli-plugin-electron-builder

electron-builder

lowdb

exceljs

dayjs

Vue.Draggable

……

功能预览

todo list

done list

基本操作

数据导出

鼠标穿透

macOS

步骤

npm install
npm run electron:serve

npm run electron:build

下载 releases:https://github.com/xiajingren/xhznl-todo-list/releases

规划

  • [x] todo/done 基本功能
  • [x] 本地数据库存储
  • [x] 软件自动更新
  • [x] 数据导出为 excel
  • [x] 开机启动
  • [x] 鼠标穿透
  • [ ] 窗口贴边自动收起
  • [ ] ……

# 4

在使用electron期间确实也遇到很多坑,其中大部分都是来自于electron编译nodejs模块。后续我可能整理一个关于electron的系列分享,介绍 xhznl-todo-list 的实现细节,欢迎关注。

GitHub:https://github.com/xiajingren/xhznl-todo-list

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2633.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • rgb12v转5v_rgb如何转cmyk不变色

    rgb12v转5v_rgb如何转cmyk不变色详见:https://www.jianshu.com/p/da2a682ae964 转换公式:*RGB转YUV:Y=0.299R+0.587G+0.114BU=-0.1687R-0.3313G+0.5B+128V=0.5R-0.4187G-0.0813B+128YUV转RGBR=Y+1.402…

    2022年9月24日
    3
  • 关于height:100%和height:100vh的区别

    关于height:100%和height:100vh的区别关于height:100%和height:100vh的区别vh就是当前屏幕可见高度的1%,也就是说height:100vh==height:100%;但是当元素没有内容时候,设置height:100%,该元素不会被撑开,此时高度为0,但是设置height:100vh,该元素会被撑开屏幕高度一致。…

    2022年4月28日
    81
  • swift中Dictionary的grouping by使用

    swift中Dictionary的grouping by使用今天在写一个功能的时候用到了Dictionary的groupingby这个用法,代码先贴出来importUIKitclassAlignFlowLayout:UICollectionViewFlowLayout{requiredinit(itemSize:CGSize=CGSize.zero,minimumInteritemSpacing:CGFloat=0,minimumLineSpacing:CGFloat=0,sectionInset:

    2022年8月20日
    5
  • java导出pdf模板_java模板导出PDF[通俗易懂]

    java导出pdf模板_java模板导出PDF[通俗易懂]本次完善综合特点:一对一,点对点的给对应的地方写值,比如模板里面放了个name标识,在程序里把“张三”赋给name,那么输出的pdf里面name的地方就变成了张三,准确方便快捷支持中文,可以使用自己下载的字体。支持图片:图片的大小范围可以在模板随意调,生成出来的图片不会超过范围。而且不需要根据坐标去算,程序里面自动计算的。支持多页模板,即使是好几页的模板,只要每个变量对应的范围确定好了,生成出来的…

    2022年5月10日
    43
  • 小白都可以操作2021版(Github的注册与使用,超详细)

    小白都可以操作2021版(Github的注册与使用,超详细)作为一个学习IT的人,学习一点开源的社区是必须的,下面我们就来说说,IT中最大的开源交友社区github。废话不多说来看看

    2022年7月16日
    27
  • 16进制浮点数的表示方法

    16进制浮点数的表示方法16进制浮点数的表示方法,根据IEEE的标准,分为32位和64位两种,参数分别如下:             符号位     指数位           尾数位           指数偏移量 32位    1[31]    8[23-30]        23[0-22]          127  64位    1[63]    11[52-62]   

    2022年6月22日
    173

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号