Php 将数据加载到REACT.JS的原理

Php 将数据加载到REACT.JS的原理,php,laravel,reactjs,Php,Laravel,Reactjs,从非JSHTML的解释来看,我很难理解将服务器端数据加载到REACT.JS“view”的概念 比如说,我有一个网站建立在拉威尔(使用路线)。每个路由请求(例如“/”、“联系人”)都有自己的视图。该视图加载了来自控制器的数据,并显示在视图中。如果我改变路线,我将被重定向到另一个视图,我将从不同的控制器获得不同的数据 现在是问题。假设我有一个简单的网站。最上面的部分是我的登录信息,可能还有一些通知图标,页面内容会随着访问web的不同部分而发生变化 所以如果我继续使用拉威尔路线。每个页面都将被“重新呈

从非JSHTML的解释来看,我很难理解将服务器端数据加载到REACT.JS“view”的概念

比如说,我有一个网站建立在拉威尔(使用路线)。每个路由请求(例如“/”、“联系人”)都有自己的视图。该视图加载了来自控制器的数据,并显示在视图中。如果我改变路线,我将被重定向到另一个视图,我将从不同的控制器获得不同的数据

现在是问题。假设我有一个简单的网站。最上面的部分是我的登录信息,可能还有一些通知图标,页面内容会随着访问web的不同部分而发生变化

所以如果我继续使用拉威尔路线。每个页面都将被“重新呈现”+我必须手动选择哪些组件属于该站点的该部分。我将不得不再次从整个web检索保持不变的信息(例如登录详细信息+通知)-这会扼杀react.js原则,不是吗

另外,将服务器站点数据传播到React.JS的最佳方式是什么?我是否应该将JSON对象“回显”到视图中,然后在REACT中“使用”它


请告诉我一些关于如何将React.js与PHP一起使用的有意义的方法。

您基本上回答了您的问题:-)使用Laravel,UI呈现在服务器上。React对于客户端UI来说最有趣。也就是说,并不是所有的事情都可以在服务器上完成,有些用户交互只能由浏览器管理。这就是为什么jQuery在PHP之外变得如此成功

如果你的应用程序提供了一些复杂的客户端代码,那么将这些代码构建为React组件可能是有用的,即使你保留了当前的服务器端路由器:使代码更易于维护,也更易于编写——一旦熟悉React的实现方式

如果您希望将应用程序转换为完全使用React和客户端路由器,这样就可以在不重新呈现每个页面的情况下浏览应用程序,这称为
SPA
(单页应用程序)。react生态系统对于建造
SPA
来说非常酷。不过,通常情况下,服务器只是一个提供JS文件的静态服务器,应用程序连接到某种RESTAPI

在某些情况下,出于特定目的,还可以从服务器提供路由服务:

  • 更快地显示第一页
  • 社交图标签可以添加到特定页面(以启用可用的Facebook) 或推特共享,例如)
如果您需要启用此服务器端路由,从而使您的应用程序
通用
同构
,则必须使用浏览器和服务器都能理解的组件,这就是为什么React应用程序通常由Node.js提供服务,所以所有内容都是Javascript

关于使用React构建通用应用程序的示例教程(在本例中,您的直觉是正确的,带有应用程序当前数据的JSON对象在第一次渲染时发送)

如果您对react生态系统感兴趣,还可以查看awesomereact页面()

概述:

  • PHP+React:轻松地将复杂组件添加到某些页面,如果您在一个页面上有大量静态内容、SEO和几个复杂组件,那么最好保持这种方式,React可以帮助您解决这些问题
  • React+API:通用SPA应用程序,更适合丰富复杂的UI,如果从头开始并熟悉javascript,开发起来非常容易,但大型应用程序的性能管理和SEO会增加复杂性
  • Universal React:两全其美,设置有点复杂(参见教程)

为了避免多次检索相同的数据,您可以使用(例如)或类似更简单的方法将其存储在应用程序状态中。如果每个页面上都有你想要呈现的组件,比如页眉,你可以很容易地设置。哇!我没想到会有这么好的回答。先生:)我开始的时候没想到会这么久,但最后有那么多话要说;-)