这可能是在回答问题和固执己见之间的那条线,但我会来回顾如何构建ReactJS组件,因为复杂性增加并且可以使用某些方向.
来自AngularJS,我希望将我的模型作为属性传递给组件,并让组件直接修改模型.或者我应该将模型拆分为各种state
属性,并在向上游发送时将其重新编译回来?什么是ReactJS方式?
以博客文章编辑器为例.试图直接修改模型最终看起来像:
var PostEditor = React.createClass({ updateText: function(e) { var text = e.target.value; this.props.post.text = text; this.forceUpdate(); }, render: function() { return ( ); } });
这似乎不对.
是否更多是React方法来创建我们的text
模型属性state
,并在保存之前将其编译回模型:
var PostEditor = React.createClass({ getInitialState: function() { return { text: "" }; }, componentWillMount: function() { this.setState({ text: this.props.post.text }); }, updateText: function(e) { this.setState({ text: e.target.value }); }, savePost: function() { this.props.post.text = this.state.text; this.props.post.save(); }, render: function() { return ( ); } });
这不需要调用this.forceUpdate()
,但随着模型的增长,(帖子可能有作者,主题,标签,评论,评级等......)组件开始变得非常复杂.
是第一种使用ReactLink的方法吗?