Electron应用开发中重新加载后的页面状态保持

前端开发 2026-07-11

我正在开发一个类似Electron的网页式桌面应用。

我现在有一个登录页和一个主页。目前,登录逻辑仅用于开发阶段,因此相关配置保存在.env文件中。

现在,在重新加载以查看主页的新改动时,应用窗口会回到登录页,我需要再次登录。

我如何让该页面在重新加载后仍停留在我正在工作的当前页面(如主页)?

解决方案

问题在于,Electron在重新加载时总是从默认页面(登录)启动,因为它不知道用户之前在什么页面。你需要手动持久化当前页面的状态。

选项1:使用 localStorage(最简单的方式)

只要用户导航时就保存当前页:

// After successful login, save state
localStorage.setItem('currentPage', 'home');

应用加载/重新加载时,首先读取该值:

window.addEventListener('DOMContentLoaded', () => {
  const page = localStorage.getItem('currentPage');
  if (page === 'home') {
    showHomePage();
  } else {
    showLoginPage();
  }
});

登出时将其清除:

localStorage.removeItem('currentPage');

选项2:使用 electron-store(生产环境推荐)

安装它:

npm install electron-store

main.js

const Store = require('electron-store');
const store = new Store();

// Save on login
store.set('currentPage', 'home');

// Read on startup, default to 'login'
const lastPage = store.get('currentPage', 'login');

然后使用 lastPage 来决定在你的 BrowserWindow 中加载哪个HTML文件或路由,而不是把登录页硬编码进去。

要点:确保不要在每次创建窗口时就无条件地调用 win.loadFile('login.html')。先检查持久化的状态,再加载正确的页面。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章