Electron基本概念


electron-banner

主進程(Main Process)

package.json中的main指定的腳本是主進程。主進程主要負責:

  • 創建Web頁面(BrowserWindow實例)並管理Web頁面;
  • 負責進程間通信;
  • 處理系統事件;

渲染進程(Renderer Process)

每一個Web頁面都運行在各自的進程中,這裏的進程就是渲染進程。Electron可以在Web頁面中使用Node.js APIs與底層操作系統交互,這一點非常了不起,也是Electron應用於桌面應用開發的主要價值(我可能更關注的是通過Node.js訪問操作系統硬件設備的能力)。

特點:

  • 渲染進程之間是隔離的;
  • 每一個渲染進程只關心自己的Web頁面;
  • 在Web頁面中不允許調用和本地GUI相關的APIs;
  • 如果Web頁面需要執行GUI操作,則必須由渲染進程請求主進程代爲執行;

注意:在通常的瀏覽器中,Web頁面是運行在沙箱環境中,不允許訪問本地資源(應該是處於用戶數據安全性考慮)。

進程間通信

顯然,這裏的進程間通信包含兩種情形:

  • 主進程和渲染進程通信:
    - [ipcRenderer](http://electron.atom.io/docs/api/ipc-renderer/)
    - [ipcMain](http://electron.atom.io/docs/api/ipc-main/)
    - [remote](http://electron.atom.io/docs/api/remote/)
  • 渲染進程之間通信:share data between web pages

應用結構

一般來說,Electron app的結構是這樣的:

your-app/
├── package.json
├── main.js
└── index.html

package.json的格式與Node模塊中的格式完全一樣(從某種程度上看,Electron app也是一個Node模塊,但是隻能通過Electron執行,而不是Node執行)。

main.js則是主進程腳本。index.html就是應用的UI。

參考鏈接


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章