我使用React构建了一个简单的静态视图引擎,其目标是呈现静态HTML标记并生成一个填充了该组件的js文件(onClick等)。如何在服务器端访问JSX组件的DOM事件处理程序React
我做的第一部分的方法是需要一个指定的JSX文件,其中,例如,看起来是这样的:
import React from 'React';
export default class Test extends React.Component {
clicked() {
alert('Clicked the header!');
}
render() {
return (
<html>
<head>
<title>{this.props.title}</title>
</head>
<body>
<h1 onClick={this.clicked}>click me!!!</h1>
</body>
</html>
);
}
}
我接着通过的NodeJS,后端渲染JSX文件像这样:
let view = require('path-to-the-jsx-file');
view = view.default || view;
const ViewElement = React.createFactory(view);
let output = ReactDOMServer.renderToStaticMarkup(ViewElement(props));
它适用于静态HTML。但是我想知道是否有一种方法可以访问数组中的JSX文件中使用的所有组件,然后我可以使用它来检查绑定了哪些事件以及哪些处理程序。
那么在这个例子中,能够得到<h1>
-tag的onClick
-handler?这甚至有可能做些什么?
这会工作,但它会很难维护。想象一下,在这个组件中有5-10个处理程序。而且我不确定你怎么能够将这些数据返回到后端,除非你喜欢一个具有这种功能的主组件。 – Tokfrans