Electron快速入门与实践

简介: Electorn是由GitHub开发的一个开源框架,可用于开发桌面应用程序

image.png

Electron是由GitHub开发的一个开源框架,可用于开发桌面应用程序,Node + Chromium的开发使得它拥有强大的跨平台能力,我们所熟知的GitHubAtom和微软Visual Studio Code都是Electron应用程序。

image.png

1. 桌面应用的优势

• 快速打开\
• 离线可用\
• 调用系统API • 安全\
• ...

2. 各大桌面应用开发技术对比

原生桌面技术开发

  • 性能好
  • 功能强大
  • 包体积相对小
  • 门槛高
  • 开发效率低

QT 桌面技术开发

  • 跨平台(支持主流操作系统)
  • 高性能
  • 接近原生应用的体验
  • C++ 开发门槛较高
  • 开发效率一般

Flutter

• 跨平台、跨端\
• 基于web技术\
• 桌面端尚未成熟 • 生态发展不完善

NW.js

• 跨平台\
• 基于web技术\
• 源码加密、支持chrome扩展 • 社区支持可\
• 开发效率高\
• 体积大、性能一般

Electron

• 跨平台\
• 基于web技术\
• 社区活跃、生态好 • 实践案例多\
• 开发效率高\
• 体积大、性能一般

3. 架构图

image.png

4. 安装与环境

环境依赖: node.js & npm

IDE: Visual Studio Code or 任意编辑器

快速开始:

npm i electron

5. 一个最简的Demo

image.png

了解主进程模块

const { app, BrowserWindow, ipcMain} = require(‘electron’)

  • app 应用的生命周期,例如 app.on(‘ready’,callback)
  • BrowserWindow 控制窗口
let win = new BrowserWindow({width, height, ...}) // 创建窗口
win.loadURL(url)、win.loadFile(path) // 加载远程或本地页面
  • Notification 通知
let notification = new Notification({title, body, actions:[{text, type}]})
notification.show()
  • ipcMain.handle(channel, handler) 主线程,继承 Event Emitter

6. 主进程与渲染进程

1. 主进程负责什么

  • package.json 的 main 脚本
  • 一个应用一个主进程
  • 原生GUI的调度管理,例如BrowserWindow、Tray、 Dock、Menu
  • app 应用生命周期
  • 创建渲染进程

2. 渲染进程负责什么

  • 展示webui的进程
  • 借助node.js、electron,拥有更多原生能力
  • 一个应用,多个渲染进程

3. IPC(Inter-Process Communication,进程间通信)

  • 通知事件、数据传输、数据共享
  • 主进程的ipcMain和渲染进程的ipcRenderer
  • 继承自EventEmitter

4. 从渲染进程到主进程

  • Callback 写法:
ipcRenderer.send
ipcMain.on
  • Promise 写法 (Electron 7.0 之后,处理请求 + 响应模式)
ipcRenderer.invoke
ipcMain.handle

7. 优势总结

  • 不必再为兼容性而烦恼
  • 使用chrome的最新特性,无需polyfill • es标准中最新语法
  • 无跨域,请求走nodejs
  • 读取本地文件
相关文章
|
3月前
|
JavaScript IDE 前端开发
【HarmonyOS 4.0 应用开发实战】TypeScript 快速入门之环境配置
【HarmonyOS 4.0 应用开发实战】TypeScript 快速入门之环境配置
154 0
|
9月前
|
开发框架 移动开发 小程序
快速上手小程序框架Taro,安装及使用教程(一)
快速上手小程序框架Taro,安装及使用教程(一)
112 0
|
9月前
|
开发框架 小程序 JavaScript
微信小程序wepy框架入门教程-搭建开发环境(一)
微信小程序wepy框架入门教程-搭建开发环境(一)
217 0
|
开发框架 JavaScript 前端开发
快速入门uniapp——从环境搭建到项目实践(上)
快速入门uniapp——从环境搭建到项目实践(上)
1474 0
快速入门uniapp——从环境搭建到项目实践(上)
|
敏捷开发 JavaScript 小程序
快速入门uniapp——从环境搭建到项目实践(下)
快速入门uniapp——从环境搭建到项目实践(下)
185 0
|
iOS开发
CTMediator 的初体验
​ 现在对于iOS开发的要求随着时代的发展,也在渐渐地演变。这几天看到了很多JD的要求,多多少少都会提到这样的一个名字-组件化。
|
Kubernetes 图形学 容器
【Agones系列】Agones初体验
本文介绍了Agones并在阿里云容器服务上运行Agones进行游戏服部署
【Agones系列】Agones初体验
|
前端开发 JavaScript 容器
electron实战 - 项目搭建
electron实战 - 项目搭建
351 0
|
JavaScript 小程序 前端开发
(一)微信小程序从入门到实战之开发工具安装
俗话说工欲善其事,必先利其器,作为一名程序员,开发软件和开发环境是我们进行软件开发的必要条件。但是对于很多新入门的朋友来说,安装开发环境和配置环境变量,通常把大多数人拦在门外,所以这篇博客,咱们先来介绍一下怎么安装小程序开发环境和配置环境变量。......
394 0
(一)微信小程序从入门到实战之开发工具安装
|
JavaScript 前端开发
手把手带你快速入门Electron
## 看完本文你可学会📢 - 对于electron有一些基本认识 - 能够了解到electron的各个模块的基本作用 - 了解进程通信,如何进行互相通信 - 逐渐学会整活(~~这个才是目的~~)