電子のライフサイクル

ライフサイクル イベント:

  • reday: アプリの初期化が完了しました
  • dom-ready: ウィンドウのテキストがロードされ、dom 上で操作できるようになります。
  • Did-finish-load: ナビゲーションが完了したとき、タブ ローテーターの回転が停止したとき (dom-ready 後に発生)、たとえばタブをクリックした後、特定のオプションの dom がロードされた後にトリガーされます。
  • window-all-closed: すべてのウィンドウが閉じられたときにトリガーされます
  • before-quit: アプリケーションがウィンドウを閉じる前にトリガーされます。
  • will-quit: ウィンドウが閉じられ、アプリケーションが終了するとトリガーされます。
  • quit: すべてのウィンドウが閉じられるとトリガーされます。
  • close: ウィンドウが閉じられるときにトリガーされ、この時点でウィンドウ アプリケーションを削除する必要があります (フォームを保存する参照オブジェクト (一部の変数の解放) を削除します)

ウィンドウ全閉イベントを監視し、何も操作しない場合、before-quit、will-quit、quitの3つのイベントは無効となります。

フックによってロードされる本の順序は、次のコードで示されています。

const { app, BrowserWindow } = require("electron");

// 创建窗口
function createWindow() {
  app.whenReady().then(() => {
    const mainWin = new BrowserWindow({
      width: 600,
      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-close");
      mainWin = null;
    });
  });
}

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

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");
});
app.on("ready", () => {
  console.log("111-ready");
  createWindow();
});

これら 3 つのフックは、フォームが閉じられていないときに初めて印刷されます。

 ウィンドウが閉じられると、close と window-all-closed もトリガーされますが、他の 3 つのフックはトリガーされません。ここでは、window-all-closed イベントがリッスンされると、before-quit、will-quit されることが確認されています。 、終了、これら 3 つのイベントはトリガーされません、

 

このとき、ウィンドウ全閉イベントフックを積極的に閉じる必要があります。 

 

この時点でフォームを閉じると、次のように出力されます。

 

window-all-closed がリッスンしていない場合、

フォームを閉じると、次のように出力されます。

 テストにはウィンドウが 1 つだけあります。これがメイン ウィンドウなので、閉じるとすぐにトリガーされます。実際にはウィンドウが多数ある場合、メイン ウィンドウ 888 が最後に閉じられるため、ここでは 8 が最後になります

 

 

おすすめ

転載: blog.csdn.net/luoxiaonuan_hi/article/details/131224942