1

以前、単一の不変の app-state を使用して、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ため、デフォルトは非常にパフォーマンスに敏感であり、時期尚早に最適化しないことをお勧めします。

とはいえ、あなたが求めたことを達成するには、これらの高価な操作をすべて実行した後、atom 突然変異を実行するだけです。

そうすることswap!reset!、最後に 、 などが、試薬がレンダリングのトリガーを検討するようになります。

于 2015-12-10T08:51:15.877 に答える