我正在学习ReactJS,我几乎已经阅读了官方网站上的所有文件 .
构建自包含和可重用的视图组件是一个很棒的框架,但是我现在有些困惑:
1 MVC vs Self-contained
如上所述,reactjs被认为是MVC中的 V
,而业务逻辑不应该放在从服务器下载数据并将数据保存到服务器中 .
然而,似乎一个独立的组件控制模型,控制器和视图可能在某个时候有意义 .
以教程(http://facebook.github.io/react/docs/tutorial.html)中的 CommentBox
为例:
CommentBox
本身采用加载/表示/更新注释的处理程序,示例中没有问题,因为此组件与其他组件没有交互 .
如果我们想要使用具有不同加载/更新方式的不同源的 CommentBox
怎么样?在这种情况下,使用ReactJS只是为了表示更有意义 .
所以我想知道哪个是reactjs方式?
2 In-line events registering
码:
render: function() {
var value = this.state.value;
return <input type="text" value={value} onChange={this.handleChange} />;
}
如图所示,我们必须在标记(jsx)中注册 onChange
事件,这是我们尽力避免的吗?如果我们想将相同的事件绑定到元素列表,通常我们使用:
$(".selector").click("...");
现在我们必须将事件添加到每个节点 .
是否可以从标记中分割事件?
1 回答
MVC vs自包含
我会说在
CommentBox
例子中,他们不想引入Flux或任何其他架构,只是为了简单起见 . 始终尽可能多地与组件中的逻辑分离 . API调用不属于组件 . 由Dan Abramov撰写的This is an interesting reading解释了如何构建良好的组件层次结构 .在线事件注册
这实际上是一个React pro . 它是声明性的,并且阻止你使用DOM选择器的jQuerish快捷方式,这是旧的命令式方法 . jQuery的思维方式不容易转储 . 如果你还没有,我建议你阅读Thinking in React .