vue 路由切换时 中止未完成的请求

简单的配置就好了

第一步:axios里面配置 全局 promiseArr

window._axiosPromiseArr = []
    // http request 拦截器
axios.interceptors.request.use(
    config => {
        config.headers = {
            'Content-Type': 'application/json;charset=UTF-8'
        };
       // 每个请求都会 加入 
        config.cancelToken = new axios.CancelToken(cancel => {
      //  这个我习惯放再window 里面,也有配置再vuex里面的 感觉太麻烦了
            window._axiosPromiseArr.push({ cancel })

        })
        return config
    },

第二步: mian.js 里面 配置全局钩子

router.beforeEach((to, from, next) => {

        window._axiosPromiseArr.forEach((el, index) => {
       
            el.cancel() // 路由跳转之前,中止请求

            //  重置 window._axiosPromiseArr
            delete window._axiosPromiseArr[index]
                
        })
        next();
    })

简单的配置

在 UniApp 中实现上拉加载更多数据和下拉刷新的 ScrollView 列表,可以借助于组件库,如 uView UI 或 Vant UI,它们提供了相关的组件和方法来实现这些功能。以下是一个示例代码,假设你选择使用 uView UI: 1. 首先,安装 uView UI: ``` npm install uview-ui ``` 2. 在 `main.js` 文件中引入 uView UI: ```javascript import uView from 'uview-ui'; Vue.use(uView); ``` 3. 在页面的 `template` 中编写 ScrollView 列表的结构: ```html <template> <view> <u-scroll-view :scroll-y="true" :refresher-enabled="true" @refresher-refresh="onRefresh" :lower-threshold="100" @scrolltolower="onLoadMore"> <view class="list"> <view v-for="(item, index) in listData" :key="index">{{ item }}</view> </view> </u-scroll-view> </view> </template> ``` 4. 在页面的 `script` 中编写相关逻辑: ```javascript <script> export default { data() { return { listData: [], // 列表数据 page: 1, // 当前页码 pageSize: 10, // 每页数据量 }; }, methods: { // 下拉刷新 onRefresh() { this.page = 1; this.listData = []; this.loadData(); }, // 上拉加载更多 onLoadMore() { this.page++; this.loadData(); }, // 加载数据 loadData() { // 模拟异步请求数据 setTimeout(() => { // 假设每页返回10条数据 const newData = Array.from({ length: this.pageSize }, (v, k) => `Item ${k + 1}`); this.listData = this.listData.concat(newData); // 结束下拉刷新或上拉加载更多的状态 uni.stopPullDownRefresh(); uni.hideNavigationBarLoading(); }, 1000); }, }, }; </script> ``` 这样,你就可以在 ScrollView 列表中实现上拉加载更多数据和下拉刷新的功能了。当点击tab切换,可以调用 `onRefresh` 方法来更新列表数据。请根据实际需求进行适当的调整和修改。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值