当前位置: 首页 > news >正文

Electron基本介绍

 Electron基本介绍

Electron 官方网站:https://www.electronjs.org/zh/

Electron安装方法:npm install electron -g 全局安装+

Electron简介:Electron提供了丰富的本地(操作系统)API,使你能够使用纯JavaScript来创建桌面应用程序。Electron通过集成浏览器内核,使用Web技术来实现不同平台下的渲染,并结合了 Chromium 、Node.js 和用于调用系统本地功能的Native API 三大板块。

Electron通过将Chromium和Node.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用;

Chromium 为 Electron 提供强大的 UI 渲染能力,由于 Chromium 本身跨平台,因此无需考虑代码的兼容性。

Chromium 并不具备原生 GUI(图形用户界面(Graphical User Interface)) 的操作能力,因此 Electron 内部集成 Node.js,编写 UI 的同时也能够调用操作系统的底层 API,例如 path、fs、crypto 等模块。

Native API 为 Electron 提供原生系统的 GUI 支持,借此 Electron 可以调用原生应用程序接口。

总结起来,Chromium 负责页面 UI 渲染,Node.js 负责业务逻辑,Native API 则提供原生能力和跨平台。

发展历史

2013年4月 Atom Shell 项目启动 。(Electron于2013年作为构建 Github上可编程的文本编辑器Atom的框架而被开发出来。)

2014年5月 Atom Shell 被开源 。

2015年4月 Atom Shell 被重命名为 Electron 。

2016年5月 Electron 发布了 v1.0.0 版本 。

2016年5月 Electron 构建的应用程序可上架 Mac App Store 。

2016年8月 Windows Store 支持 Electron 构建的应用程序 。

electron优缺点

优点:

原生的接口(菜单、消息提醒、系统托盘等)

上手难度低。能够使用react、vue等前端框架,能方便地迁移前端组件,构建出漂亮的桌面应用

方便热更新

调试和测试方便

Electron 开发文档齐全

缺点:

因为Electron捆绑了浏览器chromium内核和Node.js,所以它更倾向于创建大型应用,一个简单的Electron应用程序在没有压缩的情况下通常体积约120MB,不太适合开发轻量级的应用

相比c++开发的桌面应用,性能不如后者

每个窗口都是一个新的进程,占据大量内存

启动速度较慢

Electron允许用户通过开发者工具和ASAR源文件轻松访问源代码,不太安全

不支持手机端


相关文章:

  • Oracle数据表ID自增操作
  • 【附代码】NumPy加速库NumExpr(大数据)
  • 微信小程序上传代码教程
  • C#,十进制展开数(Decimal Expansion Number)的算法与源代码
  • linux查看当前连接的IP
  • 新版MQL语言程序设计:键盘快捷键交易的设计与实现
  • 【大厂AI课学习笔记】1.5 AI技术领域(1)计算机视觉
  • 【安卓操作系统——讲解】
  • ubuntu22.04安装部署03: 设置root密码
  • 【数据分析】Excel中的常用函数公式总结
  • react+antd+CheckableTag实现Tag标签单选或多选功能
  • 《动手学深度学习(PyTorch版)》笔记7.2
  • React 错误边界组件 react-error-boundary 源码解析
  • 实战案例:将已有的 MySQL8.0 单机架构变成主从复制架构
  • 【Flink入门修炼】1-2 Mac 搭建 Flink 源码阅读环境
  • 《剑指offer》分解让复杂问题更简单
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • Javascript基础之Array数组API
  • js操作时间(持续更新)
  • Laravel Telescope:优雅的应用调试工具
  • Leetcode 27 Remove Element
  • mysql 数据库四种事务隔离级别
  • passportjs 源码分析
  • Python学习之路13-记分
  • use Google search engine
  • 聚类分析——Kmeans
  • 日剧·日综资源集合(建议收藏)
  • 使用putty远程连接linux
  • 我的zsh配置, 2019最新方案
  • 学习Vue.js的五个小例子
  • 译米田引理
  • 优秀架构师必须掌握的架构思维
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 正则学习笔记
  • 白色的风信子
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (万字长文)Spring的核心知识尽揽其中
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .naturalWidth 和naturalHeight属性,
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .net core 连接数据库,通过数据库生成Modell
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @Not - Empty-Null-Blank
  • @TableLogic注解说明,以及对增删改查的影响
  • @软考考生,这份软考高分攻略你须知道