• 简介
    • 解构赋值

    简介

    如何使用 Node.js 和 Electron APIs

    Node. js 的所有 内置模块 都在Electron中可用, 第三方 node 模块中也完全支持 (包括 原生模块 )。

    Electron 还为开发原生桌面应用程序提供了一些额外的内置模块。 某些模块仅在主进程中可用, 有些仅在渲染进程 (web 页) 中可用, 而有些在这两个进程中都可以使用。

    基本规则是: 如果一个模块是 GUI 或底层系统相关的, 那么它应该只在主进程中可用。 你需要熟悉主进程和渲染进程 的概念,才能使用这些模块。

    主进程脚本就像一个普通的Node.js脚本:

    1. const { app, BrowserWindow } = require('electron')
    2. let win = null
    3. app.on('ready', () => {
    4. win = new BrowserWindow({ width: 800, height: 600 })
    5. win.loadURL('https://github.com')
    6. })

    渲染进程除了额外能够使用node模块的能力外,与普通网页没有什么区别

    1. <!DOCTYPE html>
    2. <html>
    3. <body>
    4. <script>
    5. const { app } = require('electron').remote
    6. console.log(app.getVersion())
    7. </script>
    8. </body>
    9. </html>

    要运行你的app, 请阅读 Run your app 。

    解构赋值

    从0.37开始,可以使用 destructuring assignment (es6解构赋值)来使内置模块更容易使用。

    1. const { app, BrowserWindow } = require('electron')
    2. let win
    3. app.on('ready', () => {
    4. win = new BrowserWindow()
    5. win.loadURL('https://github.com')
    6. })

    如果您需要整个 electron 模块, 则可以require它, 然后使用 destructuring 从 electron 访问各个模块。

    1. const electron = require('electron')
    2. const { app, BrowserWindow } = electron
    3. let win
    4. app.on('ready', () => {
    5. win = new BrowserWindow()
    6. win.loadURL('https://github.com')
    7. })

    这等效于以下代码:

    1. const electron = require('electron')
    2. const app = electron.app
    3. const BrowserWindow = electron.BrowserWindow
    4. let win
    5. app.on('ready', () => {
    6. win = new BrowserWindow()
    7. win.loadURL('https://github.com')
    8. })