即使在跨多个组件路由之后,如何在 Electron-powered React 应用程序中处理持久数据、功能和任务?
How to handle persistent data, functions and tasks in a Electron-powered React application even after routing across multiple components?
我是 React 的新手,因此在尝试弄清楚如何在 React 中实现某些东西时,我 运行 遇到了几个障碍。最近我正在编写一个仅由网格视图和详细信息视图组成的应用程序,为了导航我一直在使用道具和函数来操纵子组件的根组件的状态,但是一旦我重新构建代码并层次结构比一层更深。幸运的是,我能够从 react-router-dom
实现 MemoryRouter
并且它按预期工作。不幸的是,我现在遇到了一个问题,我不知道如何使用 React 进行正确的设计。
假设我的可在 /
下访问的应用程序的登录页面具有上述包含各种元素的网格。单击某个项目后,您会成功重定向到 /details/:id
。我能够在 DetailsPage
组件中通过 withRouter
解析可用的 id
参数。假设用户能够通过按下特定详细信息页面上的按钮来启动长时间的后台进程(实际上是下载)。这很可能不会有任何问题 运行 这种异步方式让下载过程偶尔报告进度以更新当前页面上的进度指示器。
如果用户返回登录页面,打开另一个项目的详细信息页面,在那里发出下载并 returns 到第一个详细信息页面怎么办?基本上我想知道的是我如何编写我的代码,使这些下载在后台 运行 同时即使在四处导航后也可以访问数据。特别是当返回到第一次下载时,我希望进度指示器自动更新为后台可用的 state/data。
我通过创建第二个 BrowserWindow
但将其隐藏以将其 运行 作为任务和下载的背景 worker/agent 来解决此问题。为了避免编写自定义 IPC 来获取状态,我集成了 Redux。与 electron-redux
相结合,我能够在主进程中创建一个商店,并在每个渲染器进程中拥有一个商店,与其他商店同步。这使我可以在后台工作程序中发出操作,而无需将其 IPC 发送到主 window.
我是 React 的新手,因此在尝试弄清楚如何在 React 中实现某些东西时,我 运行 遇到了几个障碍。最近我正在编写一个仅由网格视图和详细信息视图组成的应用程序,为了导航我一直在使用道具和函数来操纵子组件的根组件的状态,但是一旦我重新构建代码并层次结构比一层更深。幸运的是,我能够从 react-router-dom
实现 MemoryRouter
并且它按预期工作。不幸的是,我现在遇到了一个问题,我不知道如何使用 React 进行正确的设计。
假设我的可在 /
下访问的应用程序的登录页面具有上述包含各种元素的网格。单击某个项目后,您会成功重定向到 /details/:id
。我能够在 DetailsPage
组件中通过 withRouter
解析可用的 id
参数。假设用户能够通过按下特定详细信息页面上的按钮来启动长时间的后台进程(实际上是下载)。这很可能不会有任何问题 运行 这种异步方式让下载过程偶尔报告进度以更新当前页面上的进度指示器。
如果用户返回登录页面,打开另一个项目的详细信息页面,在那里发出下载并 returns 到第一个详细信息页面怎么办?基本上我想知道的是我如何编写我的代码,使这些下载在后台 运行 同时即使在四处导航后也可以访问数据。特别是当返回到第一次下载时,我希望进度指示器自动更新为后台可用的 state/data。
我通过创建第二个 BrowserWindow
但将其隐藏以将其 运行 作为任务和下载的背景 worker/agent 来解决此问题。为了避免编写自定义 IPC 来获取状态,我集成了 Redux。与 electron-redux
相结合,我能够在主进程中创建一个商店,并在每个渲染器进程中拥有一个商店,与其他商店同步。这使我可以在后台工作程序中发出操作,而无需将其 IPC 发送到主 window.