electron v30 版的变化:
- 在
主进程模块引入了几个新类:BaseWindow,WebContentsView,View. - 标注
BrowserView为废弃 - 把
BrowserWindow里面跟BrowserView相关的几个方法标注为废弃
WebContentsView的介绍:
WebContentsView 在 2022 年维护者峰会回顾 | Electron介绍,当时最新发布版本为v21, 经历了一年半, 直到v30版本才正式发布,是对chrome的WebContentsView适配,引用文章里的原话它是一个大型重构,消除了许多底层代码,简化了 Chromium 升级并减少主要版本之间出现新错误的风险; 计划将现有的 BrowserView 类变成一个 WebContentsView 的垫片(shim),以便在您过渡到较新的 API 时提供一个缓冲。
- 可用来加载页面,结合
BaseWindow可嵌入多个WebContentsView,实现单窗口管理多页面 - 功能和已有的
BrowserView等同, 但是不能直接在BrowserWnidow中当成BrowserView的替代, 即BrowserView只能结合BrowserWindow使用,WebContentsView只能结合BaseWindow使用
BaseWindow的用途:
BaseWindow相较于BrowserWindow来说, 没有直接加载页面的方法,没有webContents属性BaseWindow只是用来承载WebContentsView的容器, 相较于BrowserWindow多一个contentView属性,该属性类型为ViewBaseWindow通过contentView, 可引入一个或多个WebContentsView加载页面, 实现单窗口管理多页面
BaseWindow + WebContentsView 替换 BrowserWindow + BrowserView
在v30之前, 可以通过BrowserWindow的addBrowserView方法,加载多个BrowserView, 实现跟BaseWindow类似的单窗口管理多页面. 目前没发现在单窗口管理多页面时, 必须用BaseWindow + WebContentsView替换BrowserWindow + BrowserView的好处.