主进程和渲染器进程:
ackage.json
的 main
脚本的进程为 主进程
在主进程中运行的脚本通过创建 web 页面来展示用户界面
一个 Electron 应用总是有且只有一个主进程。
由于 electron
使用了 Chromium(谷歌浏览器)
来展示 web 页面
,所以 Chromium 的多进程架构也被使用到
每个 electron
中的 web 页面
运行在它自己的渲染进程中
主进程使用 BrowserWindow
实例创建页面
每个 BrowserWindow
实例都在自己的渲染进程里运行页面
当一个 BrowserWindow
实例被销毁后,相应的渲染进程也会被终止。
electron
渲染进程中通过 nodejs
读取本地文件:
在普通的浏览器中,不允许去接触原生的资源。
而 electron
的用户在 node.js
的 API 支持下可以在页面中和操作系统进行一些底层交互。nodejs
在主进程和渲染进程中都可以使用。渲染进程因为安全限制,不能直接操作原生 GUI
。
虽然如此,因为集成了 nodejs
,渲染进程也有了操作系统底层 API 的能力
Nodejs中常用的 path
fs
Crypto
等模块在 electron
可以直接使用,方便我们处理链接、路径、文件 MD5 等,同时 npm 还有成千上万的模块供我们选择
index.html 文件内容:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="content"></div>
<button type="button" id="btn">获取文件内容</button>
<script src="./renderer.js"></script>
</body>
</html>
renderer.js 文件内容:
var fs = require("fs");
// 获取按钮和容器的DOM节点
var content = document.getElementById('content'),button = document.getElementById('btn');
/**
* 注册按钮点击事件
* 当按钮点击的时候读取当前目录下的 1.text
* 之后将里面的内容放到content 之中
*/
button.addEventListener('click', (e) => {
fs.readFile('1.text', 'utf8', function (err, data) {
content.innerText = data;
});
});
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。