桌面开发
Electron
我理解 electron 是用来开发桌面应用的,基于 web 技术栈来编写页面,然后可以通过 nodejs 调用系统能力,有跨操作系统的优势
- 首先是 Chromium,我们可以把它理解为是一个拥有最新版浏览器特性的一个 Chrome 浏览器,它带给我们的好处就是在开发过程中无需考虑浏览器的兼容性,我们可以使用一些 ES6、ES7 最新的语法,可以放心的使用 Flex 布局,以及浏览器的最新特性,都可以尝试,不需要考虑兼容性的问题
- Node.js 则是提供了一个文件读写、本地命令调用、以及第三方扩展的能力,并且基于 Node.js 整个强大的生态,将近几十万的 Node.js 模块都可以在整个客户端内使用
- Native APIs 提供了一个统一的原生界面的能力,还包括一些系统通知、快捷键,还可以通过它来获取一些系统的硬件信息。还提供了桌面客户端的基础能力,像更新机制、崩溃报告这样的能力
架构
多进程模型。主要有主进程和渲染进程,两者之间的通信可以用 ipcMain 和 ipcRenderer 来实现
主进程
运行于 Nodejs 环境,可以借助 Nodejs 的 api 调用系统能力
渲染进程
BrowserWindow -- 单独的渲染器进程
preload 脚本
增强渲染器。脚本包含了那些执行于渲染器进程中,且优先于网页内容开始加载的代码
能访问 Node.js api