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
  • 读取本地文件
相关文章
|
7月前
|
JavaScript IDE 前端开发
【HarmonyOS 4.0 应用开发实战】TypeScript 快速入门之环境配置
【HarmonyOS 4.0 应用开发实战】TypeScript 快速入门之环境配置
226 0
|
7月前
|
缓存 Rust 前端开发
【一起学Rust | 框架篇 | Tauri2.0框架】Tauri2.0环境搭建与项目创建
【一起学Rust | 框架篇 | Tauri2.0框架】Tauri2.0环境搭建与项目创建
811 0
|
6月前
|
移动开发 前端开发 Java
技术笔记:ReactNative学习笔记(一)————(RN)快速入门
技术笔记:ReactNative学习笔记(一)————(RN)快速入门
77 0
|
Dart IDE 开发工具
【腾讯云 Cloud Studio 实战训练营】尝鲜体验Flutter编写一个App应用
欢迎参加腾讯云 Cloud Studio 实战训练营!在本次训练营中,我们将通过App项目入口说明,基本文件说明,基础框架搭建,带您一步步编写一个基于 Flutter 的静态App系统。无论您是初学者还是有一定编程经验的开发者,本训练营都将为您提供一个深入了解和掌握 Flutter 技术以及App开发的机会。 使用 Flutter作为UI框架,我们将能够充分利用其强大的功能和优势,快速搭建一个高效、可扩展的App系统。Flutter是Google开源的构建用户界面(UI)工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。
【腾讯云 Cloud Studio 实战训练营】尝鲜体验Flutter编写一个App应用
|
开发框架 移动开发 小程序
快速上手小程序框架Taro,安装及使用教程(一)
快速上手小程序框架Taro,安装及使用教程(一)
171 0
|
IDE Linux Go
Golang安装和配置指南:从零开始的高效开发之旅
Golang安装和配置指南:从零开始的高效开发之旅
|
存储 JSON 缓存
高性能服务器Nodejs快速入门 2
高性能服务器Nodejs快速入门
79 0
|
存储 Web App开发 JavaScript
高性能服务器Nodejs快速入门 1
高性能服务器Nodejs快速入门
84 0
|
开发框架 JavaScript 前端开发
快速入门uniapp——从环境搭建到项目实践(上)
快速入门uniapp——从环境搭建到项目实践(上)
1894 0
快速入门uniapp——从环境搭建到项目实践(上)
|
XML Java 数据格式
HarmonyOS学习路之开发基础——快速入门(创建另一个页面)
在上一节中,我们用XML的方式编写了一个包含文本和按钮的页面。为了帮助开发者熟悉在代码中创建布局的方式,接下来我们使用代码的方式编写第二个页面。