17-7-20-electron中主进程和渲染进程区别与通信
老规矩,先吐槽,再记录。
今天被上司教育了将近一个小时。因为之前自动更新的模块,我认为已经完成了,但是还有一些细节没有完善好,就一直一直的被教育~
事情全部做完,提交以后关闭issue!
electron中,从package.json的main载入的js文件就是主进程,由主进程load出来的页面就是渲染进程。
渲染进程可以有多个,主进程只有一个“main.js”。
主进程和渲染进程之间通信,可以使用ipcMain(主进程)和ipcRenderer(渲染进程)来通信,也可以使用remote模块来通信。
ipc模块就不介绍了,无非就是一个发送`ipcXX.send(channel, arg)`,然后一个接收`ipcOO.on(channel, function..)`。
可以多次发送和接收,但是ipcXX必须是不同的,才能相互通信,利用channel的信息名称来识别。
使用remote是今天刚学会的。remote下有几个子模块,比如 app模块。
在主进程中使用`app.XXX = [ 某个实例类A, B, C]`, 由于某些类的实例只能进行一次(比如说默认设置的读取等操作,多次读取,就会使文件变得混乱),
那我们在渲染进程中,就可以使用 remote.app.XXX.A来使用在主进程中 实例化的类和方法了。
再多说一个。在主进程中往往要引入一些额外的js文件,在那些额外的js文件中使用main.js中声明的变量时,由于不是一个js文件,就需要把它global化,这样就能在其他的“直系“文件中使用了。
all。 thanks。
17-7-20-electron中主进程和渲染进程区别与通信的更多相关文章
- 使用electron进行原生应用的打包(2)---主进程与渲染进程之间的通信
上一篇讲了使用electron进行打包的配置相关文件,这篇主要讲electron中很重要的通信方式. 首先解释一个概念: electron打包的应用包含两个部分 electron的环境(node),也 ...
- 研究Electron主进程、渲染进程、webview之间的通讯
背景 由于某个Electron应用,需要主进程.渲染进程.webview之间能够互相通讯. 不过因为Electron仅提供了主进程与渲染进程的通讯,没有渲染进程之间或渲染进程与webview之间通讯的 ...
- Electron结合React,在渲染进程中使用 node 模块
Electron结合React,在渲染进程中使用 node 模块 问题 将create-react-app与electron集成在了一个项目中.但是在React中无法使用electron.当在Reac ...
- Electron:主进程和渲染进程
- uml类图和er图中主外键的表示区别
在er图也就是数据库中,无论是mysql/oracle都是从表引用主表的pk作为外键. 而在uml类图表示法中,他们的顺序则刚好相反,从主对象导向到子对象,如下: 主体是资金借款方,征信信息和资金借款 ...
- electron 主进程,和渲染进程的通信
ipcMain https://electronjs.org/docs/api/ipc-main 当在主进程中使用时,它处理从渲染器进程(网页)发送出来的异步和同步信息, 当然也有可能从主进程向渲染进 ...
- 关于electron中入口文件main.js一些重要参数(持续更新maybe)
const {app, BrowserWindow} = require('electron') const path = require('path') let mainWindow functio ...
- Linux中的两种守护进程stand alone和xinetd
Linux中的两种守护进程stand alone和xinetd --http://www.cnblogs.com/itech/archive/2010/12/27/1914846.html#top 一 ...
- Linux中查看进程及杀死进程命令
Linux中想杀死fcitx进程,然后再重启它. root@www.linuxidc.com:/home/zhangbin# ps -e | grep 'fcitx' 3405 ? 00 ...
随机推荐
- maven报错 Failure to transfer org.apache.maven.plugins:maven-compiler-plugin:pom:3.5.0 from
maven报错误,类似于: Failure to transfer org.apache.maven.plugins:maven-compiler-plugin:pom:3.5.0 from http ...
- Java——Iterate through a HashMap
遍历Map import java.util.*; public class IterateHashMap { public static void main(String[] args) { Map ...
- 【51NOD-0】1134 最长递增子序列
[算法]动态规划 [题解]经典模型:最长上升子序列(n log n) #include<cstdio> #include<algorithm> #include<cstr ...
- 在非ARC工程中使用ARC库
选中工程->TARGETS->相应的target然后选中右侧的“Build Phases”,向下就找到“Compile Sources”了.为对应的库文件添加:-fobjc-arc参数即可 ...
- python3中字典的遍历和合并
#字典的遍历方式 dic={"a":1,"b":2,"c":3} for k in dic: print (k,dic[k]) for k, ...
- JAVA list 列表 字典 dict
import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.Set; pu ...
- 大聊Python----json与pickle数据序列化
用于序列化的两个模块 ☆json,用于字符串和python数据类型间进行转换 ☆pickle,用于python特有的类型和python的数据类型间进行转换 Json模块提供了四个功能:dumps.du ...
- TCP之Nagle算法与延迟ACK
(一)Nagle算法 为了减少网络中小分组的数目,减少网络拥塞的情况.Nagle算法要求在一条TCP连接上最多只能有一个未被确认的未完成小分组,在该分组ACK到达之前不能够发送其他的小分组,发送端需要 ...
- fbx sdk
autodesk fbx review autodesk fbx review http://www.greenxf.com/soft/169025.html autodesk fbx review( ...
- Mac OSX下Appium驱动iPhone真机
1.安装Xcode.Command Line Tools和Appium. 2.安装brew:/usr/bin/ruby -e "$(curl -fsSL https://raw.github ...