所以我有这个应用程序,让我们说它类似于Facebook在你的墙上张贴的东西,
所有内容都在PHP服务器/ Codeigniter框架上呈现并发送到客户端,我需要使用ReactJS呈现这些帖子,因为我在每个帖子中都有我喜欢做的很棒的事情
我不想使用V8JS,因为客户端无法使用php服务器,只需要使用php脚本来实现它,
有什么想法我怎么能做这些家伙?非常感谢,
可能有一个想法,
将帖子加载为服务器呈现,然后执行GET请求并使用ReactJS再次呈现相同的帖子?那会有用吗?
或者有没有办法将所有ReactJS函数和事件附加到服务器呈现的html页面?
答案 0 :(得分:0)
对于客户端/ Web浏览器上的React附加到现有DOM结构(例如,呈现的服务器),它使用名为data-react-checksum
的属性,该属性被添加到根DOM元素中。例如,调用React.renderComponentToString
将包含此属性。
<div data-react-checksum="452232529">
当你在同一根元素上调用renderElement
时,React会像正常调用render
一样执行,等等。但是,在render
周期结束时,data-react-checksum
与本地计算的数据进行比较。如果值与DOM中已有的值(由服务器提供)匹配,则Virtual DOM将附加到现有DOM元素。但要做到这一点,正如我所提到的,它必须完全匹配。
此外,您还需要在通常与React的虚拟DOM关联的DOM元素中包含data-reactid
属性。
如果您无法在Web服务器上执行React渲染管道,则应依赖于使用Ajax来获取数据。您可以通过PHP呈现整个页面,然后在客户端上获取数据并重新呈现页面。但是,您需要确定这对您的应用程序和用户是否有意义。
我建议您考虑将React用于网页的交互式部分,并根据需要在客户端上构建整个部分。