2017-09-26 34 views
0

私は愚かな問題に直面しています。ウェブアプリで は(私のスタックはVUEある+ vuex + VUE-ルータ)私は、ユーザーが閲覧しているページに私の店の状態を同期させることが全くできませんよ。html5 history APIとVueを使って作業する

ユーザーが戻るボタンまたは進むボタンをトリガーすると、「方向」またはページ数についての情報がまったくない同じonpopstateイベントがトリガーされます。状態オブジェクトでのみ配列keyは(新しい場所に行くときにそれを保存し、ユーザーがonpopstateどこに行った推測)やっと実用のように見えるが、「ドア」は「キー」のために、対応する場所を私も知りません。

だからそこから私は約手動履歴状態のキーを追跡し、ユーザーがされているが、私はそれがクロス互換性がないだろうと思い、また、それは持ち上げて重いコードのWHERE推測思いました。ここで

は私の質問です:私は、私は(とコード/ロジックミニマリストを維持する)ことができるか、HTML5 APIのいくつかの重要な要素が足りませんか?

ありがとうございます!

編集:タイトルと名前を変更し、

EDIT2情報を追加しました:それはだけではなく、本当に同期ルータの状態とストア状態...

悪いにvuex側のルート情報を提供しないためvuex-ルータ同期が不適切です

PS:、ないC/Pの定義を行い、慎重に読んで、

答えて

1

onpopstateは、アプリケーションの歴史の中で、それぞれの場所に相関event.state状態オブジェクトを提供して考えてください。この状態オブジェクトを提供することは、アプリケーション全体の状態を包含するように

は時間に関わらず、アプリケーションを書きます。 State patternについて読んで、 "状態"の意味を理解することをおすすめします。

特定の条件で、特定の時間に他人や物事が存在する特定の条件。

意味合い私が作ってるんだがevent.stateをレンダリングするかを決定するために、すべてのアプリケーションのニーズでなければなりませんので、あなたがあなたのアプリケーションが入っている歴史の中で相対的な位置を知る必要はありませんということです。

+0

私は何の状態の手段を知っていて、それだけでC/Pの定義に侮辱的だが、それは大丈夫です。 はい、明らかに私は状態を...状態として使うことを考えましたが、完全なVueスタックを使用しているため、最小限のコード/ロジックをvueで使いたいと思っています。 また、私の質問を間違って読んでいるかもしれませんが、私はユーザーがどこにいるかを知る必要はありません。 次回は「自分が本当に質問を理解したか」、「質問の意味は何か」、「答えることはできますか? ありがとうございます。 – rmNyro

+0

私はその質問を誤解しなかったし、侮辱する意図はなかった。これは、あなたが直面している概念的な問題のように思えます。あなたの質問は「あなたはどうしたらいいのですか?私はあなたがどのように "国家"を考えるべきかを概観すると思いました。 'history.pushState()'や 'history.replaceState()'を呼び出すときは、参照するオブジェクトを渡すか、ストア内の状態を完全に置き換える必要があります。 「どの方向にどれくらいの距離を置いているか」に基づいて計算します。ステートフルなアプリケーションは、「時間」の概念に気を付けるべきではありません。 –

関連する問題