我们之前使用FB React编写了代码,使用了一个不可变的app-state。但是,我们做了渲染,如:
model = immutable({name:"X"});
function change_name(name){
swap(render(change("name", name, model))))
}
在哪里渲染:
function render(state){
ReactDOM.render(<Todos app_state={state} />,document.getElementById('main'));
}
在试剂中我们使用r / atom,在每次交换时都会检查我们是否需要进行另一次渲染。对于非常简单的东西,比如上面那个,没关系,但是如果操作非常复杂,包括很多来回的ajax操作,那么在渲染应该发生时手动控制会更好。
我们之前工作过的TODOMVC在这里:http://jsfiddle.net/danbunea1/bL62p47n/
答案 0 :(得分:2)
据我所知,试剂批次随requestAnimationFrame
发生变化,组件实现了智能shouldComponentUpdate
所以我会说默认值非常合理,我建议不要过早优化。
那就是说,为了完成你刚刚提出的要求,只需在完成所有这些昂贵的操作后执行原子突变。
只有在最后swap!
,reset!
等时,试剂才会考虑触发渲染。