Electron生命周期事件

Electron生命周期事件

生命周期事件

  • ready app完成初始化操作会触发一次,用于加载窗口
  • dom-ready 一个窗口中文本加载完成
  • did-finish-load 导航完成时触发
  • window-all-closed 所有窗口关闭后触发
  • before-quit 关闭窗口前触发
  • will-quit 窗口关闭并且应用退出时触发
  • quit 当所有窗口被关闭时触发
  • closed 当窗口关闭时触发,此时应删除窗口引用

演示代码

main.js

const { app, BrowserWindow } = require('electron')

//创建窗口
function createWindow() {
    let mainWin = new BrowserWindow({
        width: 800,
        height: 400
    })

    mainWin.loadFile('index.html')

    mainWin.webContents.on('did-finish-load', () => {
        console.log('333-------->did-finish-load')
    })

    mainWin.webContents.on('dom-ready', () => {
        console.log('222-------->dom-ready')
    })

    mainWin.on('close', () => {
        console.log('888---->window1 is closed')
        mainWin = null      //删除引用,释放内存,防止内存泄露
    })

}

app.on('ready', () => {
    console.log('111--->ready')
    createWindow()
})

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

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

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

app.on('quit', () => {
    console.log('777--->quit')
})

运行然后关闭窗口,命令行中发现应用没有结束,按下ctrl+c,其输出结果如下

111--->ready
222-------->dom-ready
333-------->did-finish-load
888---->window1 is closed
444---->window-all-closed
555---->before-quit

我们发现will-quitquit的打印并没有出现,这是因为我们如果去监听window-all-closed事件的话,则需要手动去写调用退出方法,否则不会退出自然就没有will-quitquit相应的内容输出了。

代码修改如下

app.on('window-all-closed', () => {
    console.log('444---->window-all-closed')
    app.quit();
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值