angular - Angular Electron 应用的单例 redux 商店
问题描述
所以我有一个持有 Angular SPA 的电子应用程序。应用程序的状态是使用 ngrx Redux 处理的。
我希望能够创建一个新BrowserWindow
窗口并保持原始窗口中的状态。我已经看到使用 React 可以做到这一点,redux-electron-store
但我似乎找不到任何与 Angular 类似的东西。Angular可以做到这一点吗?
解决方案
您可以通过使用 ipc 来实现这一点。
原始窗口渲染JS
import { ipcRenderer } from "electron";
let personName = 'Leandro'
let personAge = -1
ipcRenderer.send("send-data", {name:personName, age:personAge})
主/index.js
// When receives data from ipcRenderer/Original renderer
// emits that data to channel "here is your data"
ipcMain.on("send-data", function(event, args){
ipcMain.emit("here-isyour-data", data)
})
接收器渲染器
let personName = null
let personAge = null
ipcRenderer.on("here-isyour-data",function(event, args) {
personName = args.personName
personAge = args.personAge
})
最好将主 index.js 设置为控制器,但如果您愿意,可以使用ipcRenderer.sendTo()
.
要解决您的问题,您可以这样做
// On creation/indexjs
let newWindow = new BrowserWindow()
newWindow.emit('hey, im created')
// On render.js
let personName = null
let personAge = null
newWindow.once('oke, here is your data', function(event, args){
personName = args.personName
personAge = args.personAge
})
// On original render.js
let personName = 'Leandro'
let personAge = -1
ipcRenderer.once("hey, im created", function(){
ipcRenderer.send("oke, here is your data", {name:personName, age:personAge})
})
或者
让 mainRenderer 作为“// On creation/indexjs”的中间人。
我希望我有所帮助,我从未使用过角度,但我认为你可以使用电子来实现这一点。
欲了解更多信息,请访问电子:ipc Docs
如果您想要一个很酷且改进的窗口处理程序,请访问:GitHub
推荐阅读
- javascript - 小米富文本编辑器,点击不正常
- javascript - JavaScript - 导入/导出(模块),文件路径
- jmeter - 基于 react js 的站点性能测试应该采用什么方法-Jmeter
- c - 接收方在网络编程中使用广播响应时的发送方/接收方行为
- reactjs - AWS API 获取“类型错误:无法获取”但适用于邮递员和浏览器
- google-colaboratory - Jupyter:从本地部署到云环境?
- python - 如何连接具有 NAN 的熊猫中的列?
- python - Python-docx:表格中降价的超链接文本
- ios - Xcode 12 和 iOS 15
- c# - OpenTK 读取深度缓冲区到数组