34

Cordova でモバイルアプリを作っています。react-router@2.0.0+を使用してReactCSSTransitionGroup、「カード デッキ」アニメーションを実装します。循環リンクの可能性のない厳密なルート ツリーがあります。

パフォーマンスを向上させ、以前のルート コンポーネントの状態を保存するために、pop-state または replace-state でのみアンマウントして、それらの履歴全体を保持したいと考えています。

どうやってするの?

4

3 に答える 3

0

これが実際に役立つと確信していますか?私があなたの主張を理解したら、コンポーネントを「キャッシュ」して、既存のルートを再訪するときに DOM 構造を再作成する必要がないようにしたいと思います (Ionic にはまさにそれを行うオプションがあると思います)。

React は、効率的な方法で DOM を既に更新しているはずの仮想 DOM 実装を使用しているため、どの程度のメリットが得られるかはわかりません。ルートから別のルートに移行すると、実際の DOM と React 表現との差分に従って、最小限の DOM ノードのみが変更されます。

コンポーネントの状態を「キャッシュ」して、毎回再計算する必要がないようにする場合は、reduxand reselect( https://github.com/reactjs/reselect )のようなものを使用する方がはるかに簡単です。必要な場合にのみコンポーネントに与えるデータを更新し、基本的にコンポーネントからの状態の抽出を完了します。あなたの状態は、コンポーネントのアンマウント後も存続します。

Reselect は関数メモ化を使用して、何かが変更されるたびにではなく、必要なときにのみコンポーネントに渡す props を再計算します。

于 2016-05-11T13:03:41.797 に答える