分离的原因
- 在 npm 上有关于 Vue 和 Electron 结合的工具库,可以让我们很方便的实现
vue
和 nodejs
的结合开发,但是我还是选择了将网页与 Nodejs(Electron)分离的开发方式,因为当有一天我们不再使用 Vue
而是 React
或 原生JS
,那么我们要重新摸索一套 React
和Electron
的开发模式,当然公司强制要求除外。
- nodejs 和 web 的分工也不同,nodejs 更倾向于各种形式的数据存取,和操作系统进行一些交互,对操作系统文件增删改查,和外部插件实现通信。Web 主要负责数据展现和通知用户功能逻辑的执行结果。
- 最终实现的目标是:不同 Window 版本下 网页端、桌面端、移动端共用同一套代码。
如何实现
- 前端 入口文件处 使用框架语言引入 Electron, 能做到方便其他组件通过 Electron 向 Nodejs 发送消息即可
- 判断:当前业务属于纯前端还是需要 Nodejs 配合实现,如果只是单纯的网页端添加提示或者只是与服务器交换数据,那么我们要避免使用 electron 相关功能,如果需要 Nodejs 配合实现则仅限于使用消息通知到 Nodejs 让其配合实现即可,Nodejs 执行完毕后会通过
handle
-invoke
消息回调向网页发送执行结果。
- 还有更加复杂的业务场景需要根据实际情况分析(比如使用
WebSocket
、.on
监听等等)。