Electron 与 Web 应用程序(特别是 React)

Nei*_*eil 2 web-applications single-page-application reactjs electron

语境

我目前正在使用React(和其他node库)开发单页 Web 应用程序。我已经对这个项目比较深入了。该应用程序旨在取代公司的物流平台(交易、库存管理等)。

他们当前的系统是一个Windows基于应用程序,因此直觉认为Electron桌面应用程序可能更适合他们的需求。我正在开发基于 Web 的应用程序,因为这些是我熟悉的技术。

我知道的

不是很多,因此问题。据我了解,您可以使用Electron. 此外,Electron 可以离线工作,而 Web 应用程序则不能。

我研究过的

我已经做了一些研究,但对于我正在寻找的东西,没有什么是完全正确的。其他人将 Electron 与扩展、Chrome 应用程序(贬值)和 PWA 进行比较。似乎没有人将 Electron 与 Web App 进行比较

我想知道什么

很难说清楚,因为这是一个相当开放的问题。尽管如此,这里有一些我正在努力寻找答案的要点:

  • 单页 Web 应用程序与 Electron 的直接比较(安全性、本机桌面功能的好处、部署等)
  • 易于从纯 Reactjs 过渡到 Electron/Reactjs

总而言之,我希望有人能够指出我遗漏的任何东西,这可能是决定走哪条路的一个重要因素。

小智 7

我会尽量给你一个简短的回答你的问题:

电子基本上所做的是将浏览器引擎(在这种情况下为铬)与您的应用程序捆绑在一起。浏览器引擎负责渲染您的应用程序。

使用本机功能的方法是在主进程和渲染器进程之间进行通信。所以基本上你想在本地桌面端做的所有事情都将在主进程中进行。因此,在您的情况下,您仍然需要做一些额外的工作来使您的网络应用程序在内部或与电子一起工作。

本机桌面功能的好处取决于您的 Web 应用程序的用例。我可以从我自己的个人经验中看出,以下内容非常有用:

  • 访问文件系统(写入、读取、编辑、删除本地文件)
  • 全局快捷方式(例如,无论用户目前正在使用什么其他应用程序,按 alt+o 都会打开您的应用程序或特定页面)
  • 就像您说的,如果您没有互联网连接,您的应用程序至少仍会呈现。

在部署方面,最常见的事情是构建和生成应用程序的可安装 .exe 文件。有很多库允许您构建电子应用程序的 .exe,例如“电子生成器”。还有很多方法可以通过内置的电子更新程序 api 或某些第三方库向您的用户提供更新。

在安全方面,我必须承认我对那部分不太了解,但电子开发人员经常保持框架更新,因此安全问题不应该成为问题。

希望这至少能回答你的一些问题,如果不仅仅是问更多:)