Javascript React v15.0.0:由于renderToString已被弃用,如何进行服务器端渲染?
React有一个新的候选版本V15.0.0。由于renderToString方法现在在库中已被弃用,并且很明显在未来的版本中将停止使用,那么在新版本中如何支持使用React进行服务器端渲染 在“文档”页面上,除了不再支持此特定方法外,没有提供对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渲染字符串的正确(也是唯一)方法是使用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)