Electron的原理是什么

这篇文章将为大家详细讲解有关Electron的原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

发展壮大离不开广大客户长期以来的信赖与支持,我们将始终秉承“诚信为本、服务至上”的服务理念,坚持“二合一”的优良服务模式,真诚服务每家企业,认真做好每个细节,不断完善自我,成就企业,实现共赢。行业涉及成都纸箱等,在网站建设公司营销型网站建设、WAP手机网站、VI设计、软件开发等项目上具有丰富的设计经验。

        在Electron应用中,GUI组件仅在主进程可用,在辅助进程中不可用。那如果想要在辅助进程中试用GUI组件,势必需要和主进程进行通信。ipc模块就是用来实现主进程和辅助进程之间的通信。在主进程中使用ipcMain模块进行对辅助进程的通信进行控制和处理。而在辅助进程中,则使用ipcRenderer模块,来向主进程发送消息或者接受主进程的回应。接下来我们来讲讲这两个模块是如何进行通信的。

        在主进程中使用ipcMain模块进行对辅助进程的通信进行控制和处理。ipcMain模块是EventEmitter的实例。ipcMain模块有四个监听方法:

ipcMain.on(channel, listener)

解析:监听事件channel,当新消息到达时,将执行监听方法listener(event, args)

ipcMain.once(channel, listener)

解析:为事件channel添加一个只执行一次的监听方法listener。在第一次消息到大时会调用listener,执行完毕马上删除listener.

ipcMain.removeListenner(channel, listener)

解析:从特定的channel的监听事件中删除特定的listener监听者。

ipcMain.removeAllListeners([channel])

解析:本方法可接受传参channel,若传参channel,则删除特定channel的所有监听者。若未进行传参,则删除所有监听者。

我们需要将event对象传递给callbackevent主要有两个方法:同步回复消息和异步回复消息

event.returnValue

解析:当主进程需要向辅助进程回复同步消息,则可以使用该方法。

event.sender.send('消息')

解析:当主进程需要向辅助进程回复异步消息,则可以使用本方法。

我们还是拿昨天的项目来继续用,我们来看看主进程和辅助进程之间如何进行通信的:

首先主进程我们说过了就是index.js文件,我们在里面使用ipcMain模块对消息进行处理:

const ipcMain = require('electron').ipcMain;
ipcMain.on('test-message', function (event, arg) {    event.sender.send('test-reply', '这是主进程');});
ipcMain.on('test-message', function (event, arg) {    event.returnValue = '这是主进程';});

辅助进程目前只有一个index.html页面,我们在里面使用ipcRenderer对消息进行处理

const ipcRenderer = require('electron').ipcRenderer;
console.log(ipcRenderer.sendSync('test-message', '这是辅助进程'));ipcRenderer.on('test-reply', function(event, arg) {  console.log(arg); });ipcRenderer.send('test-message', '这是辅助进程');

我们使用electron .命令测试一下效果:

Electron的原理是什么

可以看到主进程成功进行通信了,那接下来我们来讲讲在辅助进程中ipcRenderer具体的使用方法吧。

辅助进程其实就相当于我们一个个的html文件,可以使用ipcRenderer来接受和发送消息以便与主进程进行交互。

ipcRenderer模块用来监听事件的有四个方法:

ipcRenderer.on(channel, listener)
ipcRenderer.once(channel, listener)
ipcRenderer.removeListenner(channel, listener)
ipcRenderer.removeAllListeners([channel])

这四个方法的含义和ipcMain一致,这里就不进行重复解释了。发送消息ipcRenderer一样有发送同步消息和发送异步消息两个方法:

ipcRenderer.send(channel, args)

解析:辅助进程使用该方法向主进程发送异步消息。主进程使用ipcMain模块对异步消息进行处理。

ipcRenderer.sendSync(channel, args)

解析:辅助进程使用该方法向主进程发送同步消息。主进程使用ipcMain模块对同步消息进行处理然后通过event.returnValue进行相应消息给辅助进程。在这里我的建议是尽量少用同步消息,因为发送同步消息会阻塞整个页面渲染进程,对于用户体验来说是非常糟糕的一件事情。

ipcRenderer其实还有一个方法用来发送消息:

ipcRenderer.sendToHost(channel, args)

关于Electron的原理是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

网页题目:Electron的原理是什么
文章网址:https://www.cdcxhl.com/article0/gidooo.html

成都网站建设公司_创新互联,为您提供响应式网站网站营销静态网站企业网站制作搜索引擎优化网站导航

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都app开发公司