学习 Electron - 进程通信 Electron 进程通信 Electron 的主进程和渲染进程有着清楚分工且不可互换。 因此,从渲染进程直接访问 Node 接口或 从主进程访问 DOM 都是不可能的。 解决此问题的方法就是使用 进程间通信(IPC,inter-process communication)。 渲染器进程到主进程(单 2024-09-14 编程 #编程#工具#框架#javascript#typescript#软件开发#前端
学习 Electron - 上下文隔离 Electron 上下文隔离 用于确保 预加载脚本 和 Electron 的内部逻辑运行在所加载的 webcontent 页面之外的独立上下文环境中。 这对于安全性很重要。因为它有助于阻止网站访问 Electron 的内部组件和预加载脚本可访问的高等级权限 API。 所以,预加载脚本所访问的 win 2024-09-14 教程 #编程#工具#框架#javascript#typescript#软件开发#前端
学习 Electron - 消息端口 Electron 消息端口 MessagePort 允许在不同上下文之间传递消息。 // renderer.js // 消息端口是成对创建的。 连接的一对消息端口 // 被称为通道。 const channel = new MessageChannel() // port1 和 port2 之间唯 2024-09-14 开发 #编程#工具#框架#javascript#typescript#软件开发#前端
学习 Electron - 流程模型 Electron 流程模型 浏览器的职责极其复杂,除显示页面内容这个主要职责外,还有其他比如管理标签页和加载第三方扩展等职责。 早期,浏览器用单进程处理这些功能,虽然标签页打开时的消耗较少,但是在一个网站发生问题时会影响到整个浏览器。 因此,Chrome 让每个标签页在自己的进程中渲染,从而限制单个 2024-09-14 编程 #编程#工具#框架#javascript#typescript#软件开发#前端
学习 Electron - 预加载脚本 Electron 预加载脚本 Electron 主进程是一个拥有完全操作系统访问权限的 Node 环境,除此之外,还能访问 Node 模块及所有通过 npm 安装的包。 出于安全考虑,渲染进程默认运行在页面而非 Node 中。 为将不同类型的进程桥架在一起,需要使用 预加载脚本。 BrowserWi 2024-09-14 开发 #编程#工具#框架#javascript#typescript#软件开发#前端
学习 Jest - 初步认识 Jest Jest 安装 npm install --save-dev jest or yarn add --dev jest 示例 // sum.js function sum(a, b) { return a + b } module.exports = sum // sum.test.js c 2024-09-14 编程 #编程#工具#测试#软件开发#配置
学习 Jest - 匹配值 匹配器 相等 test('2 + 2 = 4', () => { expect(2 + 2).toBe(4) }) // toBe 用于测试精确相等性 // 检查对象使用 toEqual // toEqual 会递归检查对象或数组的每个字段 test('object assignment 2024-09-14 编程 #编程#工具#测试#软件开发#配置
学习 Jest - Setup and Teardown Setup and Teardown 直接翻译过来就是安装和拆卸。 通常编写测试时需要预先进行一些配置工作,并在测试后进行相关整理,Jest 提供了相关帮助函数 重复设置 假设需要重复做很多测试,可使用 beforeEach 和 afterEach钩子 // beforeEach 和 afterE 2024-09-14 编程 #编程#工具#测试#软件开发#配置
学习 Jest - 异步测试 测试异步 Promise 可从测试中返回一个 Promise test('Async Get Data', () => { return AsyncGetData().then(data => { expect(data).toBe('Data') }) }) as 2024-09-14 编程 #编程#工具#测试#软件开发#配置
学习 Jest - Mock 模拟函数 允许除去函数实际实现,捕获对函数的调用以及在调用中传递的参数 使用 new 实例化时捕获构造函数的实例及允许在测试时模拟返回值 // 为提供的数组每个项提供回调 function forEach(items, callback) { for (let i = 0; i < item 2024-09-14 编程 #编程#工具#测试#软件开发#配置