npm install -g electron
electron -v
查看Electron版本号electron .
<body>
<h1>Hello World</h1>
</body>
var electron =require('electron')
var app=electron.app //引用APP,负责整个应用程序控制,即主进程
var BrowserWindow=electron.BrowserWindow //窗口引用,负责对窗口的操作
var mainWindow=null //声明要开启的主窗口
//编写应用启动状态下的逻辑
app.on('ready',()=>{
//初始化主界面并设置长宽
mainWindow=new BrowserWindow({width:700,height:300})
//加载主界面视图文件
mainWindow.loadFile("test.html")
//编写关闭窗口时的逻辑
mainWindow.on('closed' ,()=>{
mainWindow=null //将主窗口置空,达到关闭效果
})
})
由于Electron基于Chromium架构,所以自然而然遵循其多进程架构,一个完整的Electron应用包含多个进程,这些进程被分为主进程与渲染进程
一个Electron应用有且仅有一个主进程,主进程的控制文件由Node.JS配置文件package.json中的main属性声明,一般为main.js或index.js,创建或销毁窗口等所有系统事件,都需要定义在主进程的控制文件中,统一由主进程管理。
一个Electron应用可以有多个渲染进程,没创建一个新页面就需要一个新的渲染进程。每个渲染进程都是独立的,任意一个渲染进程报错或崩溃都不会影响其他渲染进程运行
主进程与渲染进程之间通过IPC进行通信
var electron = require('electron')
var app = electron.app
var BrowserWindow = electron.BrowserWindow;
var mainWindow = null ;
app.on('ready',()=>{
mainWindow = new BrowserWindow({
width:500,
height:500,
//开放nodejs,必须加入这两句 否则无法在渲染进程中正常加载fs
webPreferences:{ nodeIntegration: true,
contextIsolation: false}
})
mainWindow.loadFile('test.html')
mainWindow.on('closed',()=>{
mainWindow = null
})
})
var fs = require('fs'); //加载fs
window.onload = function(){
//获取按钮和div控件
var btn = this.document.querySelector('#btn')
var content = this.document.querySelector('#content')
//设置按钮点击事件
btn.onclick = function(){
//读取文件并写入渲染进程数据中
fs.readFile('test.txt',(err,data)=>{
content.innerHTML = data
})
}
}
<body>
<Button id="btn">点击查看文件内容</Button><br/>
<div id="content"></div>
</body>
最终展示效果