Electron + Vue3 造一个「离线优先」的本地备忘录

119 阅读2分钟

——功能、技术、源码一次讲透

在 Notion、语雀、飞书等多云笔记百花齐放的今天,为什么还要造一个「纯本地」的备忘录?
答案只有一句:数据所有权应该握在自己手里

今天给大家分享的这款开源项目 Electron Memo,正是为「离线优先、隐私优先」场景而生。它用当下最潮的技术栈(Electron 37 + Vue3.5 + TS5 + Vite7)搭了一套跨平台桌面笔记,3 分钟 clone 下来就能用,颜值、体验、扩展性全部在线。下面直接上干货。

image.png


一、产品速览:5 个高频痛点一次解决

表格

痛点Electron Memo 解法
云笔记同步慢/收费纯本地 IndexedDB,毫秒级读写,0 流量 0 费用
隐私担忧数据落盘即加密,无联网请求,想删就删
富文本体验差集成 WangEditor 5,图片拖拽、代码块、公式一键插入
多级分类混乱左侧树形目录,无限层级随便嵌
日记/灵感/代码片段混杂内置「日记模式」「收藏模式」,一键过滤

img.xxx.com/electron-me…


二、技术拆解:为什么选这套栈?

表格

层级选型亮点
跨端壳Electron 37.1.0统一 Windows / macOS / Linux,一次编码多端运行
渲染层Vue 3.5 + TS 5.8Composition API + 类型体操,代码提示爽到飞起
构建Vite 7 + esbuild冷启动 < 800 ms,热更新 ≈ 20 ms
状态Pinia 3模块化 store,完美配合 Composition API
UIAnt Design Vue 4.2组件全、主题 Token 化,暗色模式一行配置
存储IndexedDB浏览器原生 NoSQL,支持二进制大文件
服务端Express 5(本地)预留 HTTP 拓展口,后期可接 WebDAV 同步

整个架构图如下:

┌──────────────┐          ┌──────────────┐
│   Main       │◄────────►│   Renderer   │
│ (Electron)   │  IPC     │   (Vue3)     │
└──────┬───────┘          └──────┬───────┘
       │                         │
       │ native APIs             │ IndexedDB
       ▼                         ▼
┌──────────────┐          ┌──────────────┐
│  File System │          │   WangEditor │
└──────────────┘          └──────────────┘

三、30 秒本地跑起来

bash

# 1. 克隆
git clone https://gitee.com/suzhidong/electron-memo.git
cd electron-memo

# 2. 装依赖
npm i

# 3. 开发模式
npm run dev   # 同时启动 Vite + Electron

# 4. 打包
npm run build && npx electron-builder

打包产物在 dist/ 目录,双击即可安装,体积 ≈ 70 MB(含运行时)。


四、可玩性极高的扩展点

  1. 插件市场
    主进程暴露了 ipcMain.handle('memo:xxx') 统一通道,只需在 /src/main/plugins 新建文件即可注入新能力,例如 OCR 识别、图床上传、Git 备份等。
  2. 主题皮肤
    基于 Ant Design Vue 的 theme.token,在 /src/renderer/theme 里写 JSON 即可热切换。
  3. 同步策略
    IndexedDB → 导出 JSON → 加密 → WebDAV / Gist / 私有 S3,社区已有人提 PR#12,欢迎一起 review。

五、一键直达

源码:👉 gitee.com/suzhidong/e…
文档:README 即文档


六、安装包下载地址

windows: aksu.suzhidong.cn/Memory%20Se… mac: aksu.suzhidong.cn/Memory-0.0.…

如果你也厌倦了「云」的束缚,想要一个完全属于自己的第二大脑,不妨给 Electron Memo 点个 Star,让它在本地安静地陪你记录每一个灵感闪现的瞬间。