electron-egg electron-egg
首页
  • v4.x
  • v3.x
  • v2.x
插件
  • v4.x
  • v3.x
demo
支持
知识点
案例
交流
  • GitHub (opens new window)
  • Gitee (opens new window)
首页
  • v4.x
  • v3.x
  • v2.x
插件
  • v4.x
  • v3.x
demo
支持
知识点
案例
交流
  • GitHub (opens new window)
  • Gitee (opens new window)
❤️成为赞助商
  • 快速入门

  • 基础功能

    • 目录结构
    • 生命周期
      • 前端模块

      • 控制器
      • 服务层
      • 预加载层
      • 通信

      • 数据库

      • 任务

      • 日志
      • 额外资源目录
      • 调试
      • 脚本工具
      • DLL使用
      • 调用第三方程序
      • 远程模式
    • 生成软件

    • 升级

    • 跨语言支持

    • 从v3升级v4
    • 更新记录
    • 常见问题
    目录

    生命周期

    # 介绍

    项目入口文件及生命周期

    # 入口 main.js

    启动 ElectronEgg

    const { ElectronEgg } = require('ee-core');
    const { Lifecycle } = require('./preload/lifecycle');
    const { preload } = require('./preload');
    
    // new app
    const app = new ElectronEgg();
    
    // register lifecycle
    const life = new Lifecycle();
    app.register("ready", life.ready);
    app.register("electron-app-ready", life.electronAppReady);
    app.register("window-ready", life.windowReady);
    app.register("before-close", life.beforeClose);
    
    // register preload
    app.register("preload", preload);
    
    // run
    app.run();
    

    # 生命周期

    ./electron/preload/lifecycle.js 模块,加载顺序如下:

    'use strict';
    
    const { logger } = require('ee-core/log');
    const { getConfig } = require('ee-core/config');
    const { getMainWindow } = require('ee-core/electron');
    
    class Lifecycle {
    
      /**
       * core app have been loaded
       * 加载
       * exception -> config -> log -> controller -> socket -> ready()
       */
      async ready() {
        logger.info('[lifecycle] ready');
      }
    
      /**
       * electron app ready
       * 加载以下事件
       * app.on('second-instance')
       * app.whenReady().then() 该事件会创建 mainWindow
       * app.on('window-all-closed')
       * app.on('before-quit')
       * 然后触发
       * -> electronAppReady()
       */
      async electronAppReady() {
        logger.info('[lifecycle] electron-app-ready');
      }
    
      /**
       * main window have been loaded
       * mainWindow 被创建后,加载
       * windowReady()
       */
      async windowReady() {
        logger.info('[lifecycle] window-ready');
        // 延迟加载,无白屏
        const { windowsOption } = getConfig();
        if (windowsOption.show == false) {
          const win = getMainWindow();
          win.once('ready-to-show', () => {
            win.show();
            win.focus();
          })
        }
      }
    
      /**
       * before app close
       */  
      async beforeClose() {
        logger.info('[lifecycle] before-close');
      }
    }
    Lifecycle.toString = () => '[class Lifecycle]';
    
    module.exports = {
      Lifecycle
    };
    
    上次更新: 2025/06/06, 07:21:49
    目录结构
    介绍

    ← 目录结构 介绍→

    Theme by Vdoing | Copyright © 2023-2025 哆啦好梦 | 京ICP备15041380号-2
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×