網站首頁 編程語言 正文
我們自己寫項目時候可以不需要封裝。封裝其實也是對自己的一種提高吧。哈哈哈哈。
1、封裝成一個方法后,以后想要發送請求就直接調用這個方法,這樣所有的請求都走這個方法,就可以對所有的請求做一個攔截,
2、另外,接口的域名不管要使用多少次都是一樣的,難以維護,提高代碼的可復用性
const BASE_URL = 'http://localhost:8082'
// 通過export向外暴露一個方法,方法名叫myRequest,調用myRequest方法時會向方法中傳遞一個對象options
export const myRequest = (options)=>{
return new Promise((resolve,reject)=>{ // 異步處理的封裝通過promise比較好,并且要return出去,
uni.request({ // 在回調函數中處理異步請求
url: BASE_URL + options.url, // 將接口地址分為兩部分,這樣如果域名改變了好維護,接口地址從options中獲取
method: options.method || 'GET', // 方法從options中獲取,如果沒有傳入method,則默認為GET,
data: options.data || {}, // data從options中獲取,如果沒有傳入data, 則默認一個空對象
success: (res) => { // 用箭頭函數,res是返回來的數據
if(res.data.status !== 0){ // 如果請求失敗,則給一個提示
return uni.showToast({
title: '獲取數據失敗!'
})
}
resolve(res) //如果請求成功,調用resolve返回數據
},
fail: (err)=>{ // err 是返回來的錯誤信息
uni.showToast({ // 給一個消息提示
title: '請求接口失敗!'
})
reject(err) // 調用reject方法把錯誤消息返回出去
}
})
})
}
這個方法可能每個頁面都會用到,我們可以在main.js中引入,
import { myRequest } from ‘./util/api.js’
接收之后,掛載到全局,這樣所有的頁面都可以調用這個方法
Vue.prototype.$myRequest = myRequest
使用方法:使用this.$myRequest進行調用
onLoad() {
this.getSwipers()
},
methods: {
// 獲取輪播圖數據
async getSwipers(){
// uni.request({
// url: 'http://localhost:8082/api/getlunbo',
// method: 'get',
// success:(res)=>{
// console.log(res)
// if(res.data.status !== 0){
// return uni.showToast({
// title: '獲取數據失敗!'
// })
// }
// this.swipers = res.data.message
//
// }
// })
const res = await this.$myRequest({url: '/api/getlunbo'})
console.log(res)
this.swipers = res.data.message
}
}
原文鏈接:https://blog.csdn.net/qq_46199553/article/details/126307381
相關推薦
- 2022-12-23 Kubernetes應用配置管理創建使用詳解_云其它
- 2022-08-05 利用jQuery?treetable實現樹形表格拖拽詳解_jquery
- 2024-02-01 idea設置格式化豎線
- 2022-06-18 datagridview實現手動添加行數據_C#教程
- 2022-07-07 python?如何求N的階乘_python
- 2022-05-24 SQLServer?RANK()?排名函數的使用_MsSql
- 2022-07-15 python中進程間通信及設置狀態量控制另一個進程_python
- 2023-02-27 python定時任務sched庫用法簡單實例_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支