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 

和所有的事件处理程序工作