## 主進程(Main Process)
1. 可以使用和系統進行對接的electron api(創建菜單等)
2. 創建多個渲染進程
3. 全面支持`Node.js`
4. 只有一個,作為程序入口
## 渲染進程(Rendener Process)
1. 有多個,每個對應一個窗口
2. 每個都是單獨的進程
3. 全面支持`Node.js` `DOM API`
4. 可以使用一部分Electron api
## BrowserWindow(main process)
1. 創建和控制瀏覽器窗口
```
const { BrowserWindow } = require('electron')
let mainWindow = new BrowserWindow({
width: 800,
height: 600,
})
```
2. 可以使用node api`nodeIntegration: true`
3. 加載html文件`mainWindow.loadFiel('index.html')`
4. 指定父窗口`parent: mainWindow`,隨著父窗口關閉而關閉,子窗口顯示在父前
## 進程間通訊IPC
main.js
```
const {ipcMain} = require('electron')
```
```
ipcMain.on('message', (event, arg) => {
//event.sender.send('reply','hello from main')
mainWindow.send('reply','hello from main')
})
```
renderer.js
```
const {ipcRenderer} = require('electron')
```
```
ipcRenderer.send('message', 'hello from renderer')
ipcRenderer.on('reply', (event, arg) => {
document.getElementById('message').innerHTML = arg;
})
```
## 備注
1. 每次修改main.js后都需要重啟才能生效,可以安裝模塊`cnpm install nodemon --save-dev`,自動檢測變化
```
"scripts": {
"start": "nodemon --watch main.js --exec \"npm run dev\"",
"dev": "electron ."
},
```
- php
- 安全
- php7
- 特性
- 編譯安裝
- 源碼整體框架
- 基本變量
- thinkphp3.2.3
- thinkphp5.0
- thinkphp6.0
- laravel
- 配置
- 路由
- artisan控制臺
- eloquent
- tinker
- composer
- 加密解密
- 小知識點
- 數組
- string
- 代碼簡潔之道
- 編譯
- 語法糖
- lumen
- smarty
- 錯題集
- 算法及數據結構
- 線性表結構
- 插入排序
- 冒泡排序
- 數據庫
- mysql
- oracle
- PostgreSQL
- redis
- sqlserver
- 前端
- 備忘
- js
- nodejs
- vue
- css
- electron
- vue
- 語法糖
- colorui使用筆記
- 微信小程序
- 操作系統
- windows
- bat
- 快捷鍵
- linux
- sed
- 問題解決
- git
- docker
- docker-compose
- 正則表達式
- ps
- lua
- 協議相關
- 問題思索
- Golang
- 測試
- 讀取和寫入json配置文件
- 類
- 接口
- mod
- gin
- fyne
- 禪道二次開發
- 服務
- apache
- 漏洞配置
- http server優化
- nginx
- 安裝
- 面試題庫
- freeswitch