【发布时间】:2016-11-17 13:28:20
【问题描述】:
我目前正在使用 Electron 构建一个应用程序,到目前为止非常棒。
我正在使用Vue.js 和Vuex 来管理我的应用程序的主要状态,主要是用户状态(配置文件和已通过身份验证等...)
我想知道是否可以打开一个新窗口,并具有与主窗口相同的Vuex 状态,例如
如果用户未通过身份验证,我目前会在应用启动时显示一个登录窗口,这可以正常工作。
function createLoginWindow() {
loginWindow = new BrowserWindow({ width: 600, height: 300, frame: false, show: false });
loginWindow.loadURL(`file://${__dirname}/app/index.html`);
loginWindow.on('closed', () => { loginWindow = null; });
loginWindow.once('ready-to-show', () => {
loginWindow.show();
})
}
用户执行登录表单,如果成功则触发此功能:
function showMainWindow() {
loginWindow.close(); // Also sets to null in `close` event
mainWindow = new BrowserWindow({width: 1280, height: 1024, show: false});
mainWindow.loadURL(`file://${__dirname}/app/index.html?loadMainView=true`);
mainWindow.once('resize', () => {
mainWindow.show();
})
}
这一切都有效,唯一的问题是,mainWindow 与 loginWindow 共享的 this.$store 与 .close()'d 不同
有什么办法可以将Vuex this.$store 传递到我的新窗口,这样我就不必将所有内容都塞进mainWindow 并不断隐藏它,改变它的视图,而且我希望能够拥有其他的依赖Vuex 状态的窗口(朋友列表等)。
希望这不会太令人困惑,如果您需要澄清,请询问。谢谢。
【问题讨论】: