Skip to main content

前端 与 Electron 分离

分离的原因

  • 在 npm 上有关于 Vue 和 Electron 结合的工具库,可以让我们很方便的实现 vuenodejs 的结合开发,但是我还是选择了将网页与 Nodejs(Electron)分离的开发方式,因为当有一天我们不再使用 Vue 而是 React原生JS,那么我们要重新摸索一套 ReactElectron的开发模式,当然公司强制要求除外。
  • nodejs 和 web 的分工也不同,nodejs 更倾向于各种形式的数据存取,和操作系统进行一些交互,对操作系统文件增删改查,和外部插件实现通信。Web 主要负责数据展现和通知用户功能逻辑的执行结果。
  • 最终实现的目标是:不同 Window 版本下 网页端、桌面端、移动端共用同一套代码。

如何实现

  • 前端 入口文件处 使用框架语言引入 Electron, 能做到方便其他组件通过 Electron 向 Nodejs 发送消息即可
  • 判断:当前业务属于纯前端还是需要 Nodejs 配合实现,如果只是单纯的网页端添加提示或者只是与服务器交换数据,那么我们要避免使用 electron 相关功能,如果需要 Nodejs 配合实现则仅限于使用消息通知到 Nodejs 让其配合实现即可,Nodejs 执行完毕后会通过 handle-invoke 消息回调向网页发送执行结果。
  • 还有更加复杂的业务场景需要根据实际情况分析(比如使用 WebSocket.on 监听等等)。