2016-12-23 18 views
1

一部のページで私たちが使用しているアプリケーションがあります。その大部分が静的であるため、かなり大きいサイトでSPAに変換するのは無意味です。NON SPAの履歴に反応する

しかし私たちは物事をインタラクティブにする必要があるページで私は反応と反応を還元しています。

私は検索結果をフィルタリングすることができるフィルタのリスト(弾性検索からの集計)を作成します(ウェブの90%は検索を行っています)。このページは反応しています。

私はメーカーのフィルタをクリックして、ある種の価格帯のフィルタを適用します。戻るボタンを押すか、戻るボタンをクリックして最後のフィルタを削除したり、状態を以前のバージョンに戻したりすることができますか?私はこれが可能であることを知っているが、私は反応ルータとSPAタイプの回答/チュートリアル/オンラインドキュメントを叩き続けている。

ありがとうございます!

答えて

1

履歴が必要なようです:redux-undoこれをお手伝いします。

戻るボタンについて - この場合、history.backを傍受して元に戻すことを意味しますか?そうであれば、フィルタの変更ごとにウィンドウを配置する必要があります。この場合、戦略はほとんどありません。

  1. すべてのフィルタリング設定をハッシュに保存できます。変更時に還元状態を更新します。リンクを共有すると便利かもしれませんが、危険な場合(このデータを検証する必要があります)、リンクが非常に長くなる可能性があります(旧式のPHPウェブサイトの場合は?filter[type]=cars&filter[colour]=red&...です)。
  2. redux-undoを使用すると、新しい履歴状態ごとに、履歴カウンタ(履歴の変更ごとに0から増分)のようなものをwindow.location.hashにプッシュするだけです。だからあなたはちょうどjumpToPast(indexFromHash)を発送することができます。しかし、定義されたフィルタを使用してページを共有する可能性をユーザに与えたい場合は、どのように把握する必要があります。

私はいくつかの解決策があると確信していますが、私は彼らがこれらを好きになると思います(履歴APIやその他のものを使用して)。だからあなたはこれにあなたの選択を任せることができます。

これがあなたに合わない場合は、理由を書いて詳細をお知らせください。私は私の答えを更新します。

関連する問題