1

我们之前使用 FB React 编写代码,使用单个不可变的应用程序状态。但是,我们做了如下渲染:

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'));
}

在试剂中,我们使用 ar/atom,在每次交换时都会检查我们是否需要进行另一次渲染。对于非常简单的东西,比如上面那个,没关系,但是如果操作非常复杂,包括很多来回的 ajax 操作,手动控制何时渲染会更好。

我们之前工作的 TODOMVC 在这里:http: //jsfiddle.net/danbunea1/bL62p47n/

4

1 回答 1

2

据我所知,试剂批次随 变化requestAnimationFrame,并且组件实现了智能shouldComponentUpdate,所以我会说默认设置对性能非常敏感,我建议不要过早优化。

也就是说,为了完成您刚刚提出的要求,只需在完成所有这些昂贵的操作后执行原子突变即可。

这样,只有当您swap!,reset!等最后,试剂才会考虑触发渲染。

于 2015-12-10T08:51:15.877 回答