React-如何在渲染服务器端时保存javascript
我正在渲染我的反应组件…
var express = require('express'); var router = express.Router(); var React = require('react'); var reactDom = require('react-dom/server'); var App = React.createFactory(require('../components/index')); router.get('/', function(req,res) { var reactHtml = reactDom.renderToString(App({})); res.render('../../tutorHub/views/index.jade', {reactOutput: reactHtml}); }); module.exports = router;
注意我正在使用renderToString
。 现在,在我的玉文件中,组件被渲染为…
<!DOCTYPE html> html(lang="en") head link(rel="stylesheet", type="text/css", href="style.css") link(rel="stylesheet", href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css") body !{reactOutput} script(type="text/javascript", src="../index.js")
这样做很好,但是没有任何一个处理程序被调用。 我做了一些研究,事实certificate,使用renderToString
不会保留我的反应组件中的JavaScript。
我如何渲染这个组件服务器端,仍然保留事件处理程序?
我正在使用webpack,是否需要更改webpack.config? 如果是这样,我该怎么做,我的webpack技能仍然是非常基本的。
解决scheme非常简单。 在我的翡翠文件中,我把它渲染为…
!{reactOutput}
所以我做的是改变它…
#app != reactOutput
和所有的事件处理程序工作