Раньше мы писали код с 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'));
}
В реагенте мы используем r/atom, который при каждом обмене будет проверять, нужно ли нам делать еще один рендер. Для очень простых вещей, таких как приведенный выше, это нормально, но если операции очень сложные, включая множество операций ajax туда и обратно, лучше вручную контролировать, когда должен происходить рендеринг.
TODOMVC того, как мы работали раньше, находится здесь: http://jsfiddle.net/danbunea1/bL62p47n/