vue路由跳轉取消上個頁面的請求


第一步:

  axios請求頭設置  

import axios from 'axios'
import { store } from './store'    // 引入vuex

axios.interceptors.request.use(
  config => {
    config.cancelToken = new axios.CancelToken(function (cancel) {
      store.commit('pushToken', {cancelToken: cancel})
    })
    return config
  }
)

  第二步:

  利用vuex,新建一個store.js,將取消方法cancel放到數組中,然后在路由守衛中把數組中存有的cancel方法都執行

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export const store = new Vuex.Store({
  state: {
    cancelTokenArr: [] // 取消請求token數組
  },
  mutations: {
    pushToken (state, payload) {
      state.cancelTokenArr.push(payload.cancelToken)
    },
    clearToken (state) {
      state.cancelTokenArr.forEach(item => {
        item('路由跳轉取消請求')
      })
      state.cancelTokenArr = []
    }
  }
})

  第三步:

  監聽路由  

router.beforeEach(function (to, from, next) {
  store.commit('clearToken') // 取消請求
  next()
})

https://my.oschina.net/u/4309525/blog/3281330
http://www.axios-js.com/zh-cn/docs/#取消


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM