私たちは、多くの場合、ページがロードされていないか、復帰動作が完了し、現在のジャンプをルーティング遭遇し、貧しい環境条件の下でのネットワークは、ネットワークに新たな要求を追加するルートを切り替えた後、保留されているだろうが、保留されている場合は、ネットワークで発見されます要求は、私たちがプロジェクトにロードされていたであろうラジャ時間のアップロードページを行う際に、ユーザーは待ちかねた後の動作への復帰をトリガするためのイニシアチブをとることが、今、ユーザーが復帰動作を要求した場合でもトリガ、ページがまだ存在しているロード。まだそこにあります、または要求が正常にロードされるまでページをロードするように指示またはタイムアウト放棄されています。最終的にユーザに不要な結果につながるだけでなく、ウェブのパフォーマンスに一定の影響。
したがって、この問題を解決する方法、それはキャンセルのページに切り替えるには、要求をルーティングする前に、ルートを監視することです。
最初のステップ:
axiosリクエストヘッダが設けられています
「axios」からインポートaxios インポート{店} ./store '//導入vuexから axios.interceptors.request.use( 設定=> { config.cancelToken =新しいaxios.CancelToken(関数(キャンセル){ store.commit( 'pushToken'、{cancelToken:キャンセル}) }) リターンの設定 } )
ステップ2:
方法がキャンセルされ、新しいstore.jsを作成し、使用vuex cancel
配列に、その後にそこガードルーティング配列cancel
方法が実行されます。
輸入ヴューから 「VUE 」 輸入Vuex から 「vuex 」 Vue.use(Vuex) 輸出のconst店= 新しいVuex.Store({ 状態:{ cancelTokenArr:[] // 解除要求トークンアレイ } 変異:{ pushToken(状態、ペイロード){ state.cancelTokenArr.push(payload.cancelToken) }、 clearToken({cancelTokenArr}){ cancelTokenArr.forEach(項目 => { 項目(「ルート要求をキャンセルスキップ」) }) cancelTokenArr = [] } } })
第三段階:
モニターのルーティング
router.beforeEach)次に、から、に(関数({ store.commit( 'clearToken')//キャンセル要求 次() })
これは、静止状態に保留され、ページ上の要求をルーティングジャンプの後に解決することができます
ご質問がある場合、あなたは私に連絡することができます:
QQ:412606846(同じマイクロチャネル番号)