Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使React路由器呈现来自服务器的交互式输出?_Javascript_Node.js_Express_Reactjs_React Router - Fatal编程技术网

Javascript 如何使React路由器呈现来自服务器的交互式输出?

Javascript 如何使React路由器呈现来自服务器的交互式输出?,javascript,node.js,express,reactjs,react-router,Javascript,Node.js,Express,Reactjs,React Router,我现在正试图使用react路由器,使用express.js。我的最终目标是: 当URL到达服务器时,它将使用服务器端呈现来呈现输出 一旦进入客户端,以后单击链接组件将导致react router在客户端上呈现(无需执行到服务器的完整往返) 到目前为止,我得到的是: 使服务器渲染类似于 在客户端渲染时,使链接组件正常工作 我的问题是: 一旦我在服务器上渲染,输出就不是交互式的。我的意思是,没有事件处理程序与DOM相关联。这是可以理解的。不过,我要寻找的是一种混合服务器和客户端渲染的方法。

我现在正试图使用
react路由器
,使用
express.js
。我的最终目标是:

  • 当URL到达服务器时,它将使用服务器端呈现来呈现输出
  • 一旦进入客户端,以后单击
    链接
    组件将导致
    react router
    在客户端上呈现(无需执行到服务器的完整往返)
到目前为止,我得到的是:

  • 使服务器渲染类似于
  • 在客户端渲染时,使
    链接
    组件正常工作
我的问题是:

  • 一旦我在服务器上渲染,输出就不是交互式的。我的意思是,没有事件处理程序与DOM相关联。这是可以理解的。不过,我要寻找的是一种混合服务器和客户端渲染的方法。我的意思是,服务器呈现输出,但它在客户机中以某种方式进行交互。如果我得到这个,我将能够在客户端上使用
    链接
    ,这将满足我的需求

如果在客户机上调用
React.render(component,element)
,其中
element
指向包含服务器呈现的React标记的DOM节点,并且
component
使用与服务器上相同的道具实例化(假设道具/状态一直匹配),React将透明地将静态标记升级为交互式React应用程序


请参见演示此技术的部分:(请注意,标记升级到交互式应用程序之前会有1秒的延迟,但仅用于演示目的)。

我还没有尝试过,但我认为这是答案,因为JSFIDLE非常严格,而且它可以正常工作。谢谢。