[electron] 程序的生命周期

electron 程序的生命周期

生命周期是一个 electron程序从启动到关闭的时间

electron 程序生命周期事件

  1. ready: app初始化完成(此时可以创建 browserWindow了)
  2. dom-ready: webContents 一个窗口中的文本加载完成
  3. did-finsh-load webContents 导航完成时触发
  4. window-all-closed 所有窗口都被关闭时触发(有默认行为,就是退出整个程序)
  5. before-quit: 关闭窗口之前触发
  6. will-quit 在窗口关闭并且应用退出时触发
  7. quit: 当所有窗口被关闭时触发

代码

javascript 复制代码
const {app, BrowserWindow} = require('electron');

app.on('ready', ()=>{
    console.log('11111111111 app ready');
    const mainwindow = new BrowserWindow({
        width: 800,
        height: 600
    });

    mainwindow.on('close', (event)=>{
        console.log('4444444444444 mainwindow close');
        event.preventDefault();
    });

    mainwindow.webContents.on('dom-ready', ()=>{
        console.log('222222222222 webContents dom-ready');
    });

    mainwindow.webContents.on('did-finish-load', ()=>{
        console.log('3333333333 webContents did-finish-load');
    });

    mainwindow.loadFile('index.html');
});

app.on('quit', ()=>{
    console.log('88888888888888 app quit');
});

app.on('window-all-closed', ()=>{
    console.log('5555555555555555 app window-all-closed');
    app.quit();
});

app.on('before-quit', ()=>{
    console.log('6666666666666666 app before-quit');
});

app.on('will-quit', ()=>{
    console.log('7777777777777 app will-quit');
});

输出结果

复制代码
11111111111 app ready
222222222222 webContents dom-ready
3333333333 webContents did-finish-load
4444444444444 mainwindow close
5555555555555555 app window-all-closed
6666666666666666 app before-quit
7777777777777 app will-quit
88888888888888 app quit

总结

目前来说就 app 的 ready 事件很重要。它用于在此事件里面创建 BrowserWindow

相关推荐
William_Xu几秒前
JavaScript 并发控制
前端
拾年2751 分钟前
从零手写 Ajax:用原生 XHR 搭建前后端交互全流程
前端·javascript·ajax
光影少年2 分钟前
懒加载与分包:React.lazy + Suspense
前端·react.js·掘金·金石计划
小林ixn17 分钟前
你以为你懂 + 号?看完这篇 Bun + TS 实战,才发现以前全写错了
前端·javascript·typescript
namexingyun39 分钟前
开源前端生态如何成为 AI UI 生成的“燃料“:shadcn/ui、Tailwind CSS、Storybook 技术价值全解剖
java·前端·人工智能·python·ui·开源·ai编程
Zyed43 分钟前
[STM32]Day15读写FLASH+读取ID
前端·stm32·性能优化
jvxiao2 小时前
你真的懂作用域吗?从编译原理角度深度 JS 的作用域
前端·javascript
Darling噜啦啦2 小时前
二叉树与递归算法实战:从树结构到 LeetCode 爬楼梯,一文吃透前端数据结构与递归思维
前端·javascript·数据结构
星栈2 小时前
Rust + Makepad 应用怎么打包发布:Windows、macOS、Linux 全平台交付
前端·rust
Aolith2 小时前
React 路由守卫:我用一个组件替代了 Vue 的 beforeEach
前端·react.js