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

【electron】electron中为什么要废弃remote,原因以及解决方案——使用IPC通信

目录

      • 为什么废弃remote
      • 解决方案 ———— IPC通信
          • 举例:还以打开文件夹举例:
            • 1、在主进程使用ipcMain:
            • 2、在preload.ts 预加载文件使用ipcRender:
            • 3 、在渲染文件中使用:

上文已经讲述了 在electron中使用@electron/remote,一定要注意看你当前项目的 electron版本是多少!!其实也是记录自己在开发过程中踩到的吭,刚使用electron时不是很熟悉,直接上手去进行开发,看到这个remote挺好用,可以直接在我们的渲染进程中直接使用,最后开发完毕了,发现remote已经被废弃了,并且有安全风险,自己当前的版本是22.3.27;

为什么废弃remote

  • 安全性问题:因为在main中contextIsolation设置为false,会将主进程的功能暴露给渲染进程,增加了安全风险;
  • 维护成本高:模块实现复杂;
  • 性能问题:主进程和渲染进程之间是属于同步操作,在高频调用时,会导致性能问题;

解决方案 ———— IPC通信

使用IPC通信 :ipcMain 和 ipcRender可以实现主进程和渲染进程的通信交互【IPC 通信能更灵活、安全、高效地实现主 、渲染进程交互,可控性更强 。】

在主进程main.js中,
nodeIntegration: false, // 禁用渲染进程直接集成 Node.js
contextIsolation: true, // 启用上下文隔离,增强安全

举例:还以打开文件夹举例:
1、在主进程使用ipcMain:

在这里插入图片描述

2、在preload.ts 预加载文件使用ipcRender:
const { contextBridge, ipcRenderer } = require('electron');// 暴露自定义 API 给渲染进程,这里暴露打开用户手册的方法
contextBridge.exposeInMainWorld('electronAPI', {openUserManual: () => {return ipcRenderer.invoke('open-user-manual');}
});
3 、在渲染文件中使用:
import  React from "react"const HelpBar = () => {return (<button onClick={async()=>await window.electrionAPI.openUserManual()}>打开用户手册</button>);
};export default HelpBar;

ps:当然@electron/remote 也可以继续使用,可以临时当一个过渡方案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/260116.html

相关文章:

  • RAG工程落地:全链路观测和性能监控
  • Python 将文件夹中的所有文件打包成Zip压缩包
  • PyQt开发完整指南
  • 亚矩阵云手机多开赋能Snapchat矩阵运营:技术原理与场景化破局
  • python基于协同过滤的动漫推荐系统
  • 微服务常用的基础知识
  • 数据结构进阶 第七章 图(Graph)
  • 【数据结构】--排序算法
  • 从零构建vue3项目(二)
  • 算法打卡 day4
  • 基于vue3+ByteMD快速搭建自己的Markdown文档编辑器
  • 洛谷P3871 [TJOI2010] 中位数
  • 【Linux网络编程】多路转接IO(二)epoll
  • 知识变现全链路设计:从IP打造到商业闭环的系统方法论|创客匠人
  • DSP学习笔记1
  • Redis网络通信模块深度解析:单线程Reactor到多线程IO的架构演进
  • ULVAC HPS1600F EGC10GS16GS 电子束电源控制Electron Beam Power Supply Gun Controller
  • SpringBoot 中 @Transactional 的使用
  • Netty:深入解析AbstractByteBufAllocator架构设计
  • 重塑音视频叙事:Premiere文本剪辑与Podcast AI降噪的革命性工作流
  • 机器学习16-强化学习-马尔科夫决策
  • 前端替换打包后文件中的内容方案(可用于渗透测试后将问题版本号清空临时解决方案)
  • 高通手机跑AI系列之——穿衣试装算法
  • 手机控车一键启动汽车智能钥匙
  • 自动化测试--app自动化测试之给手机设置锁屏图案
  • COZE API上传文件 直接从前端发送就可以,而通过后端发请求给CozeAPI就不行,为什么?
  • 01测试简介
  • Day 8:Shell数组与哈希完全指南:从“青铜“到“王者“的进化之路
  • vscode ssh远程连接到Linux并实现免密码登录
  • Zabbix干嘛的?