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

网站开发 避免 字段变化 代码app开发费用一览表

网站开发 避免 字段变化 代码,app开发费用一览表,河南 网站备案,上海广告公司电话🧩 Electron 架构详解:主进程与渲染进程的协作机制 理解 Electron 的进程架构,是开发高效稳定桌面应用的关键。本篇将详解 Electron 的核心机制:主进程(Main Process)与渲染进程(Renderer Proce…

🧩 Electron 架构详解:主进程与渲染进程的协作机制

理解 Electron 的进程架构,是开发高效稳定桌面应用的关键。本篇将详解 Electron 的核心机制:主进程(Main Process)与渲染进程(Renderer Process),以及它们如何通过 IPC 协同工作。


🧠 一、Electron 的进程模型概览

Electron 应用 = 主进程 + 多个渲染进程

主进程 main.js
渲染进程 index.html
渲染进程 setting.html
Node.js API控制
  • 主进程是 Electron 应用的核心,控制应用生命周期、窗口创建、菜单栏、系统交互等。
  • 渲染进程负责展示 UI,类似网页中的浏览器 tab。
  • 每个 BrowserWindow 都运行在独立的渲染进程中。

🧭 二、主进程(Main Process)详解

主进程:

  • 只存在一个
  • 执行 main.js
  • 管理应用生命周期、创建窗口
  • 具备完整的 Node.js API 访问权限

示例:创建主窗口

const { app, BrowserWindow } = require('electron');app.whenReady().then(() => {const win = new BrowserWindow({ width: 800, height: 600 });win.loadFile('index.html');
});

主进程还负责处理:

  • 自定义菜单栏
  • 系统托盘图标
  • 文件系统访问
  • 自动更新等后台逻辑

🎨 三、渲染进程(Renderer Process)详解

渲染进程:

  • 每个窗口有一个渲染进程
  • 渲染 HTML/CSS/JS,负责 UI 层展示
  • 类似浏览器中的 Web 页面
  • 默认不具备 Node.js 权限(出于安全考虑)

可通过 preload.js 显式暴露 API:

// preload.js
const { contextBridge, ipcRenderer } = require('electron');contextBridge.exposeInMainWorld('myAPI', {sendMessage: (msg) => ipcRenderer.send('msg', msg)
});
<!-- index.html -->
<button onclick="window.myAPI.sendMessage('Hello Main')">发消息</button>

🔗 四、主进程与渲染进程通信:IPC 机制

Electron 提供 IPC(Inter-Process Communication)机制,允许主进程和渲染进程之间安全通信。

1. 渲染进程向主进程发送消息

// 渲染进程
ipcRenderer.send('channel-name', data);
// 主进程
ipcMain.on('channel-name', (event, data) => {console.log('收到数据:', data);
});

2. 主进程向渲染进程发送消息

// 主进程
mainWindow.webContents.send('reply-channel', '你好,渲染进程');
// 渲染进程
ipcRenderer.on('reply-channel', (event, msg) => {console.log('主进程发来消息:', msg);
});

🛡️ 五、安全通信建议(使用 preload.js)

避免直接在渲染进程使用 require('electron'),应使用 contextBridge 创建中间层暴露白名单 API。

// preload.js
contextBridge.exposeInMainWorld('secureAPI', {getVersion: () => ipcRenderer.invoke('get-app-version')
});
// 主进程
ipcMain.handle('get-app-version', () => {return app.getVersion();
});

🧬 六、主进程 vs 渲染进程 功能对比

功能主进程渲染进程
控制应用生命周期
访问 Node.js 全部 API默认❌
创建窗口
渲染页面
使用 DOM、CSS、HTML
托盘、菜单栏、通知

🧩 七、进程间资源隔离与性能策略

  • Electron 中每个窗口 = 独立的 Chromium 进程,内存占用较高。

  • 建议复用窗口,避免滥用窗口数量。

  • 可使用 webPreferences 限制渲染进程权限:

    new BrowserWindow({webPreferences: {nodeIntegration: false,contextIsolation: true,preload: path.join(__dirname, 'preload.js')}
    });
    

🧾 总结

名称作用
主进程(Main)应用入口,创建窗口,系统交互,生命周期控制
渲染进程(Renderer)展示 UI,运行页面代码
IPC 通信实现进程间交互(事件、数据)
preload.js安全桥接渲染与主进程,提升安全性

http://www.cadmedia.cn/news/10691.html

相关文章:

  • 浙江杭州最新消息徐州seo建站
  • 电脑配件经营网站的建设论文宁波seo托管公司
  • 政府网站建设安全关键词seo资源
  • 成都龙泉工程建设有限公司网站网站seo
  • 非小号是根据国外哪个网站做的网络科技公司经营范围
  • 网站免费源码大全杭州seo工作室
  • 山东省建设人才网站百度网盘人工申诉电话
  • 公司如何进行网络推广seo网页优化工具
  • 今天的新闻联播内容宜昌seo
  • 东莞专业营销网站建设推广靠谱的代运营公司
  • 比较好网站搭建公司郑州seo优化外包热狗网
  • 华为公司网站建设方案网站搜索引擎推广
  • 橙子建站仅向商家提供技术开发定制软件公司
  • 招聘去建设赌博类网站小说引流推广
  • 盐城做网站公司深圳做网站的
  • 长沙建设工程造价网郑州seo方案
  • qq官方网站进入百度营销登录
  • 制作动画的网站搜索优化推广公司
  • 做网站现在什么最赚钱吗东莞网络推广平台
  • 江苏省建筑人才网亚马逊排名seo
  • 曲阳网站建设在哪网络营销岗位招聘信息
  • 真人百家樂网站建设ds2600ii色带
  • 国内外电子政务网站建设差距seo百度首页排名业务
  • 网站制作一般需要多少钱?互联网营销
  • seo关键词优化推广报价表seo推广薪资
  • 呼和浩特百度公司seo关键词优化
  • 男技师做spa的视频网站倒油seo优化教程视频
  • 石家庄公司网站如何制作本溪seo优化
  • 泰安网站制作哪里有网站seo在线诊断
  • 网站建设php有哪些百度知道官网手机版