2016-03-27 7 views
1

Reactの新しいリリース候補、v 15.0.0があります。 renderToStringメソッドはライブラリ内で廃止され、今後のバージョンでは廃止される予定であるため、新しいバージョンのReactでサーバー側のレンダリングをサポートする方法は何ですか?React v15.0.0:このrenderToStringは非推奨であるため、サーバーサイドのレンダリングについてどうやって作業しますか?

docsページでは、この特定のメソッドがサポートされていないことを除いて、renderToStringやその他の説明は置き換えられません。コメントで述べたように

はあなた

+3

'renderToString'はすでに0.14では非推奨となったが、警告のみを与えました。この機能は、ReactDOMServerにのみ存在するようになりました。https://facebook.github.io/react/docs/top-level-api.html#reactdomserver – dannyjolie

+2

したがって、ReactDOMServerは引き続き動作します。私は混乱していて、彼らはそれを完全に取り去っていると思った。 – user3104270

+1

ええ、彼らはお互いを分離しているだけです。目標はReactコアが普遍的なものであることです。私たちが開発者として望むもの、つまりDOM、マークアップ文字列、iOS要素など何にでも依存します。そのようなものを他のパッケージにバンドルするのは理にかなっています。 – dannyjolie

答えて

1

ありがとう、正しい(そして唯一の)方法が反応の最近のバージョンを文字列にレンダリングするためには、ReactDOMServerのrenderToStringを使用することです。ただし、多くの既存の回答とドキュメントは削除されたReact.renderToStringを参照しています。それはしばらくの間廃止されましたが、明らかに最近削除されただけです。

これは、(ノード・バベルで実行されている)ように見えるかもしれないものの迅速かつ汚い例:

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) 
関連する問題