Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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 v15.0.0:由于renderToString已被弃用,如何进行服务器端渲染?_Javascript_Node.js_Reactjs_Version_Server Side Rendering - Fatal编程技术网

Javascript React v15.0.0:由于renderToString已被弃用,如何进行服务器端渲染?

Javascript React v15.0.0:由于renderToString已被弃用,如何进行服务器端渲染?,javascript,node.js,reactjs,version,server-side-rendering,Javascript,Node.js,Reactjs,Version,Server Side Rendering,React有一个新的候选版本V15.0.0。由于renderToString方法现在在库中已被弃用,并且很明显在未来的版本中将停止使用,那么在新版本中如何支持使用React进行服务器端渲染 在“文档”页面上,除了不再支持此特定方法外,没有提供对renderToString的替换或其他解释 谢谢如评论中所述,使用最新版本的React渲染字符串的正确(也是唯一)方法是使用ReactDOMServer的renderToString。但是,许多现有答案和文档都引用了已删除的React.renderStr

React有一个新的候选版本V15.0.0。由于renderToString方法现在在库中已被弃用,并且很明显在未来的版本中将停止使用,那么在新版本中如何支持使用React进行服务器端渲染

在“文档”页面上,除了不再支持此特定方法外,没有提供对renderToString的替换或其他解释


谢谢

如评论中所述,使用最新版本的React渲染字符串的正确(也是唯一)方法是使用ReactDOMServer的
renderToString
。但是,许多现有答案和文档都引用了已删除的
React.renderString
。它已经被弃用了一段时间,但显然只是最近才被删除

这可能是一个简单的示例(使用node babel运行):

const Express=require('Express'))
const React=require('React')
const ReactDomServer=require('react-dom/server'))
常量标签=React.createClass({
渲染:函数(){
返回Foo

} }) const server=Express() 服务器使用(功能(req、res){ const appHtml=ReactDomServer.renderToString() res.send(appHtml) }) 服务器。听(3000)
renderToString
在0.14中已被弃用,但只给出了警告。此功能现在只存在于ReactDOMServer中:因此,ReactDOMServer仍然可以工作。我当时很困惑,以为他们是在彻底废除它。是的,他们只是把东西彼此分开。我们的目标是使React内核具有通用性,不知道我们作为开发人员希望它呈现什么,无论是DOM、标记字符串或iOS元素还是其他。因此,将这些东西打包到其他包中是有意义的。
const Express = require('express')
const React = require('react')
const ReactDomServer = require('react-dom/server')

const Label = React.createClass({
  render: function () {
    return <p> Foo! </p>
  }
})

const server = Express()

server.use(function(req, res) {
  const appHtml = ReactDomServer.renderToString(<Label />)
  res.send(appHtml)
})

server.listen(3000)