Electron.js + React / Redux - 最佳实践

时间:2018-06-17 10:52:40

标签: javascript reactjs redux electron

所以,这就是事情。 我们有主进程和渲染器,它们彼此隔离,只有桥接是IPC消息(到主进程)或BrowserWindow webcontents发送(到主进程)。

我在componentDidMount处理我的活动,如此:

ipcRenderer.on('deviceWasPlugged', this.deviceWasPluggedListener);

并且我将使用componentWillUnount删除此侦听器,以防止在组件被销毁时内存泄漏:

ipcRenderer.removeListener('deviceWasPlugged', this.deviceWasPluggedListener);

显然我的Class / Component

中有这样的方法
deviceWasPluggedListener = (e, somedata) => {
  // boring stuff goes there...
}

除了一个事实外,一切都很好看 - 对我来说似乎并不合适。 我仍然认为,应该有一个更好的地方来保持我的事件听众。

我认为,我不能将它保存在redux中间件中,基于coz事件的模型不允许我在redux中间件中取消订阅此事件,并且当我尝试发送smth时将创建多个事件,即使我通过action.type:

切换它
const someMiddleware = store => next => action => {
  if (action.type === 'SOME_TYPE') {
    // ...
  }

  next(action);
};

export default someMiddleware;

所以,伙计们,请告诉我有没有更好的地方来保留我的后端事件?它应该在我每次需要时触发,它不应该导致maxEventListeners内存泄漏问题。

0 个答案:

没有答案