electron学习总结

先附上自己在github的简单学习文档
https://github.com/heartOfblack/electron-react-test
只需要看READ.MD文件即可


electron框架可以说非常容易上手,跟普通的HTML开发差不多.
可以把你的electron当成是一个浏览器,如果你有做过混合APP的开发的话,你会发现他们其实都是一样的.
在基于某一个底层的基础上去搭建一个应用.

混合APP是基于原生的框架上搭建的,集成了一个plus对象,供我们调用各种设备接口.
而electron也是结合了node.js和Chromium的运行环境,在这基础上提供了各种接口.所以在实现你的应用的时候,你既可以使用chrome的v8引擎支持的所有API[很庆幸我们在这个环境下终于不用考虑浏览器兼容性的问题了!但是,操作系统的兼容还是有的,哈哈哈],同时也可以使用node提供的API.而electron则提供了各种操作系统级别的API,有些electron的接口是与node提供的接口功能一致的,根据自己的需要和习惯选择使用即可,甚至使用第三方的模块也可以.

简单来说,用electron写代码,无比舒畅.


electron 重点概念

  • 模块与进程

electron通过模块来区分功能分类,比如ipc,remote,dialog,process等等,详情查看官方文档https://electronjs.org/docs

这些模块的运行是在不同进程中进行的.
而electron分为 主进程渲染进程,有些模块只在其中一个进程中调用,而有些模块则可以在两个进程中使用,所以我们需要知道不同模块是在哪个进程中运行的.

  • 程序入口

在package.json中指定入口文件,main:index.js
这个index.js就是入口文件,它是在主进程中执行,其他的页面都在渲染进程中执行.

因为渲染进程中无法使用 属于主进程的模块,所以 electron提供了 remote模块,方便我们在渲染进程中使用引用主进程的模块对象,但是!请注意,这个模块的引入并不代表你把主进程的模块放到了 渲染进程执行,而仅仅是一个引用,实际上还是在主进程中执行.
下面会简单介绍一下,remote模块与ipc模块

  • remote模块和ipcMain以及ipcRender

remote模块可以让我们在其他页面(渲染进程)中使用主进程的模块内容.
它的实质是,告诉主进程,当前程序想要干什么,请主进程调用相应的模块,也就是通信,这个通信是同步的

ipcMain和ipcRender模块也是用于 主进程和渲染进程的通信,这不过这种通信是显示地通信,不像remote模块直接调用即可.

ipcMain是在主进程监听渲染进程的操作,同时也可以响应渲染进程,而ipcRender则是监听和发送事件给ipcMain,他们的通信可以是异步,也可以是同步的.

那么remote模块与ipc模块之间的区别是什么?什么时候该用remote什么时候该用ipc
上面已经说了,remote是隐式的通信,没有回调.而ipc则可以回调.这就是他们的区别.

你可能感兴趣的:(electron学习总结)