Pat*_*der 4 reactjs isomorphic
我正在浏览React教程,在网络上,我看到了很多有关同构React的知识。只是对它是什么以及它如何工作感到困惑。
根据我的理解,Isomorphic React应用程序是从一开始就加载所有需要的数据,然后根据用户的请求将其保留在客户端上,以将完整数据保存在商店中(Redux architechture)。
现在,如果我遇到这样的情况,例如需要从第三方应用程序中使用webservice加载完整的HTML表单,在该应用程序中我从中获取数据作为json(需要在屏幕上呈现哪些字段的架构)并执行一些操作。操作我需要将请求发送回去,以便获得其他架构以将其加载为下一个屏幕。在这种情况下,每次需要进行服务器调用或ajax调用时,我该如何使用同构(我不喜欢这样做,因为它可能暴露API)
所以在这种情况下我可以说这个应用程序是同构的,或者我对同构的理解是完全错误的?
Avt*_*ohi 11
在高层次上理解同构。
服务器驱动的世界:在这个世界中,当用户在浏览器中打开一个页面时,客户端(浏览器)和服务器之间会发生很多交互。为了在浏览器中加载页面,浏览器和服务器开始工作,通过发送请求和渲染向用户提供网页。在这个世界中,服务器负责渲染每个页面以响应用户交互。例如; 如果用户单击提交按钮,则请求将用户在表单中输入的数据发送到服务器,作为响应,服务器会将带有数据的新 HTML 返回到浏览器以显示下一个屏幕。这里服务器也负责 UI 以及业务逻辑和数据模型。这种方法有很多优点和缺点。
客户端驱动的世界或单页应用世界 在这个世界中,网页渲染的责任交给了客户端(浏览器),服务器主要负责业务逻辑和数据模型。这再次有很多优点和一些缺点。
客户端和服务器端渲染世界各有各的好处,“同构 JavaScript”是获得两全其美的方式。
而 React 是一个提供开箱即用的同构支持的框架。
同构:“在形式或关系上对应或相似”。
对于Web应用程序,这意味着服务器在某种程度上类似于客户端-从某种意义上说,服务器能够呈现与客户端一样多的内容。从某种意义上说,同构Web应用程序回到了旧的范式,在该范式中,服务器将呈现数据,然后将数据预呈现给客户端(例如PHP模板或Ruby erb)。
特别是对于同构React,这意味着服务器使用React组件和渲染客户端的初始HTML React.renderToString()。这样就消除了双重工作,例如erb在使用Rails时在服务器端使用模板,然后在客户端模板中使用Handlebars,并且避免使用FOUC。您可以将React用于所有内容。
现在,如果您使用的是第三方服务,则只需照常使用json数据即可。是什么让您的应用同构,否则您自己的服务器是否使用与前端相同的模板引擎。您可能消耗的任何第三方服务都与您的应用是否同构无关。
| 归档时间: |
|
| 查看次数: |
2716 次 |
| 最近记录: |