什么是“通用应用程序”?

Tod*_*ang 3 reactjs redux

我一直在阅读有关 React 和 Redux 的内容,他们提到了“通用应用程序”。例如:

\n\n
\n

“您\xe2\x80\x99可能需要一个(反)序列化机制来编写通用应用程序并从服务器中获取其状态......”\n(来自http://rackt.org/redux/docs/introduction/PriorArt .html )

\n
\n\n

什么是通用应用程序?

\n

lua*_*ped 5

在这种情况下,通用应用程序是指那些能够根据具体情况在服务器或客户端中呈现的 Web 应用程序。

有时也可以称为“同构应用程序”。

来自https://www.npmjs.com/package/webpack-isomorphic-tools的更完整解释:

什么是网络应用程序?我将其定义为一个带有一堆输入(键盘事件、鼠标事件)和一个作为输出的显示的框。用户走进您的网站,您的 Web 应用程序会在他的显示器上呈现一个“页面”。

起初,所有渲染都在服务器上进行。但后来“AJAX”出现了(2005 年),它开启了将所有渲染逻辑移至客户端(用户的 Web 浏览器)的可能性,而服务器只提供 API 调用(数据获取、数据修改等)服务。

因此出现了大量的 JavaScript 框架来服务于客户端渲染和路由的目的。但后来每个人都意识到,这种构建 Web 应用程序的新方法破坏了搜索引擎索引,因为搜索引擎不支持任何 JavaScript。

然后超级响应网站的时代到来了,iPhone 也出现了,毫秒之战开始了。每个人都注意到客户端渲染在第一个页面加载时引入了不必要的数据获取往返:Web 浏览器首先加载标记模板和脚本,然后向服务器请求要显示的实际数据。

因此很明显,Web 应用程序需要“同构”(“通用”),即能够根据情况在客户端和服务器上呈现。它非常易于管理:只需用一种能够在客户端和服务器上运行的编程语言编写渲染逻辑即可。JavaScript 就是这样的一种语言。