Electron 20 值得关注的变化

简介: Electron 20 值得关注的变化
编者按:近日,Electron 20.0.0 发布,并在官方博客发布文章,本文内容是语雀工程师佳心根据博客的内容整理的她认为那些值得关注的变化、新特性及相关内容。
Electron 20.0.0 博客地址:https://www.electronjs.org/zh/blog/electron-20-0

最近几个版本开始,Electron 的更新日志都有对应的中文版翻译,所以之后就不再做重复的直译,主要列举我认为那些值得关注的变化、新特性及相关内容。


Chromium 104

Node.js 16.15.0

V8 10.4


一、支持 Windows 沉浸式暗黑模式

Electron 目前支持通过设置 nativeTheme.themeSource = 'dark' 来使用暗黑模式。

但是我个人测了两台 Windows 10,并没有感受到很大的区别,还是只有 context menu  和 devtools 有暗色:

看 PR close 了 #32913,应该是要在 nativeTheme.themeSource = 'system' 支持 titlebar 匹配暗色模式的:

但是实测下来,在默认应用模式为暗时,titlebar 并没有变为暗色,还是如上图的亮色,感觉是个 bug;只有在设置「在以下区域显示主题色」勾选「标题栏」时 titlebar 颜色才改为主题色(可能是各种彩色)。

🔗 https://github.com/electron/electron/pull/34549

二、macOS 新增 panel 类型 BrowserWindow

在 macOS 上,BrowserWindow 的表现形式除了以往支持的 desktoptextured,新增了 panel 类型:

来看看这三种窗口的具体表现:

  • textured 类型:增加金属色泽的外观 (NSTexturedBackgroundWindowMask)。

  • desktop 类型:将窗口置于桌面背景级别 (kCGDesktopWindowLevel - 1),窗口不会接收焦点、键盘或鼠标事件。

  • panel 类型:窗口可以浮动在全屏应用上

🔗 https://github.com/electron/electron/pull/34665


、Renderer 默认沙盒化

在 Electron 20 之前,Renderer 的预加载脚本是默认不启用沙盒的,即可以直接在  preload.js 里使用 Node.js。

在 Electron 20 中,Renderer 默认开启沙盒化,如果不指定  nodeIntegration: truesandbox: false,将无法使用 Node.js

🔗 https://github.com/electron/electron/pull/35125


四、构建原生模块时注意依赖版本

构建原生模块时,建议 node-gyp 最小版本 8.4.0,electron-rebuild 最小版本 3.2.9。

🔗https://github.com/electron/electron/pull/35160


五、Chrome 104、103 带来的变化

获取本地字体

通过 window.queryLocalFonts() 可以获取设备的所有本地字体信息:


const pickedFonts = await window.queryLocalFonts();const fontData = pickedFonts[0];console.log(fontData.postscriptName);console.log(fontData.fullName);console.log(fontData.family);console.log(fontData.style);

HTTP 状态码 103 - Early Hints

允许浏览器在服务器还在准备响应数据的时候预加载一些其他资源:


<link as="font" crossorigin="anonymous" href="..." rel="preload"><link as="font" crossorigin="anonymous" href="..." rel="preload"><link href="https://web-dev.imgix.net" rel="preconnect">

New in Chrome 104:https://developer.chrome.com/blog/new-in-chrome-104/

New in Chrome 103:https://developer.chrome.com/blog/new-in-chrome-103/


注:语雀桌面客户端就是使用 Electron 开发的,如果你有兴趣可以下载体验:https://www.yuque.com/download
相关文章
|
Windows
Electron窗口白屏解决
Electron白屏问题主要出现在两方面: 1、electron未加载完毕html,electron自身产生的白色背景; 2、electron加载html,html处于加载渲染过程中产生的短暂白屏;
2141 0
|
5月前
|
API UED
升级 Vue3 后,项目的打包体积会有什么变化?
升级 Vue3 后,项目的打包体积会有什么变化?
172 57
|
4月前
|
存储 开发框架 开发工具
Electron有哪些使用场景
【10月更文挑战第13天】Electron有哪些使用场景
258 0
|
5月前
|
JavaScript
vue学习(14)深度监视
vue学习(14)深度监视
43 0
|
UED
解决Electron窗口白屏问题的预创建方案
在使用Electron创建窗口时,有时会遇到窗口显示白屏的问题。这篇文章将介绍一种解决方案,即预创建窗口,并提供了针对窗口关闭和应用退出的管理方法,以确保 Electron 应用的顺畅运行和用户体验
778 0
|
9月前
|
存储 Web App开发 iOS开发
Electron 从基础到实战笔记 - Electron App对象及其事件
Electron 从基础到实战笔记 - Electron App对象及其事件
291 0
|
缓存 前端开发 JavaScript
如何减少React中无关组件的重渲染
你是否同我一样,总是会遇到一些莫名其妙的渲染问题,有时为了解决bug,需要耗费相当气力来debug呢?快来一起学习下react re-render 这些小技巧吧,或许能帮你减少组件树中无关组件的重渲染及重挂载,可以提升性能,同时也能提高用户体验哟。 案例代码:https://github.com/buzingar/re-render-demos
2355 5
|
JavaScript API
【Vue2.0源码学习】变化侦测篇-Array的变化侦测
【Vue2.0源码学习】变化侦测篇-Array的变化侦测
63 0
|
存储 JavaScript API
【Vue2.0源码学习】变化侦测篇-Object的变化侦测
【Vue2.0源码学习】变化侦测篇-Object的变化侦测
48 0
|
Web App开发 开发框架 前端开发
Electron快速入手,拥有自己的第一个桌面应用
Electron 是一个跨平台的、基于 Web 前端技术的桌面 GUI 应用程序开发框架。 支持 Web 技术开发桌面应用,其本身是基于 C++ 开发的,GUI 核心来自于 Chrome,而 JavaScript 引擎使用 v8。 这使得我们使用前端技术就可以开发出属于自己的第一个桌面应用。
372 0