当前位置: 首页 > news >正文

网站 新闻同步骤更新 ecshop中国国家培训网

网站 新闻同步骤更新 ecshop,中国国家培训网,北京疫情死了八千多人,怎么做自己的手机网站文章目录 前言一、我们为什么要去封装?二、具体实现1.创建一个请求封装文件:2.封装 uni.request:3.如何去使用? 总结 前言 在uniapp中如何去更简洁高效的发送我们的请求,下面就介绍了uni.request()二次封装。 一、我们…

文章目录

  • 前言
  • 一、我们为什么要去封装?
  • 二、具体实现
    • 1.创建一个请求封装文件:
    • 2.封装 uni.request:
    • 3.如何去使用?
  • 总结

前言

在uniapp中如何去更简洁高效的发送我们的请求,下面就介绍了uni.request()二次封装。


一、我们为什么要去封装?

在 UniApp 中,uni.request 是用于发起网络请求的方法。为了简化代码、提高可维护性和统一管理请求逻辑,通常会对 uni.request 进行统一封装。以下是一个简单的封装示例:

二、具体实现

1.创建一个请求封装文件:

在src目录下新建一个文件,比如 request.js,用于存放封装后的请求方法。
在这里插入图片描述


2.封装 uni.request:

代码如下(示例):

/*** 添加拦截器:*   拦截 request 请求** TODO:*   1. 非 http 开头需拼接地址*   2. 请求超时*   3. 添加小程序端请求头标识*   4. 添加 token 请求头标识*/import { useUserStore} from '@/stores'// '填写你的网络请求基地址' 以下是我自己开发的服务器接口,你们换成你们自己的服务器地址
const baseURL = 'http://localhost:3000/api'// 添加拦截器
const httpInterceptor = {// 拦截前触发invoke(options:UniApp.RequestOptions) {// 1. 非 http 开头需拼接地址if (!options.url.startsWith('http')) {options.url = baseURL + options.url}// 2. 请求超时, 默认 60soptions.timeout = 10000// 3. 添加小程序端请求头标识options.header = {...options.header,'source-client': 'miniapp',}// 4. 添加 token 请求头标识// pina仓库里面存的token信息const userStore= useUserStore()const token = userStore.userInfo?.token// 统一携带tokenif (token) {options.header.Authorization = token}},
}
// 最后添加到uniapp的拦截器上
uni.addInterceptor('request', httpInterceptor)
type Data<T> = {code: stringmsg: stringresult: T
}// 2.2 添加类型,支持泛型
export const request= <T>(options:UniApp.RequestOptions) => {// 1. 返回 Promise 对象return new Promise<Data<T>>((resolve, reject) => {uni.request({...options,// 响应成功success(res) {// 状态码 2xx, axios 就是这样设计的if (res.statusCode >= 200 && res.statusCode < 300) {// 2.1 提取核心数据 res.dataresolve(res.data as Data<T>)} else if (res.statusCode === 401) {// 401错误  -> 清理用户信息,跳转到登录页const userStore = useUserStore()userStore .clearUserInfo()uni.navigateTo({ url: '/pages/login/login' })reject(res)} else {// 其他错误 -> 根据后端错误信息轻提示uni.showToast({icon: 'none',title: (res.data as Data<T>).msg || '请求错误',})reject(res)}},// 响应失败fail(err) {uni.showToast({icon: 'none',title: '网络错误,换个网络试试',})reject(err)},})})
}

3.如何去使用?

在需要请求的地方进行进入操作
在这里插入图片描述

总结

以上就是今天要讲的内容,本文仅仅简单介绍了uniapp中uni.request()的二次封装,uniapp官方文档还有很多介绍,以上就是个人的学习分享,仅供参考。

http://www.ds6.com.cn/news/790.html

相关文章:

  • 销售公司名字大全深圳seo优化方案
  • 电子商务自助建网站四年级新闻摘抄大全
  • 有没有教做健身餐的网站广州最新重大新闻
  • 公司网站建设推荐乐云seo站长之家seo一点询
  • 武汉网站开发建设bt最佳磁力搜索引擎
  • 帮客户做网站平台犯法吗近一周热点新闻
  • 做网站什么软件百度学术官网
  • 股票网站怎么做动态表格宁波seo优化排名
  • 网站的动态图怎么做的网站推广优化怎样
  • 创意ppt模板大全东莞网络优化服务商
  • 水利网站建设b站推广网站2024年不用下载
  • 企业网站怎么做优化sku电商是什么意思
  • 青岛住房和城乡建设厅网站首页seo收录查询
  • 多语种网站怎么做搜索引擎排名焊工培训班
  • 深圳网站建设 设计科技百度网站域名
  • 网站推广策划思路是什么网站不收录怎么解决
  • 网站开发需要学营销网络推广方式有哪些
  • 烟台高端网站建设百度搜索使用方法
  • 品牌网站建设 优帮云手机优化大师官网
  • 中国糕点网页设计网站搜索优化推广公司
  • 服务平台型网站中国免费网站服务器下载
  • 网站建设培训个人免费申请网站
  • 莆田做外贸网站搜狗指数官网
  • 龙港哪里有做百度网站的百度推广步骤
  • 巴中微小网站建设案例网站免费推广方式
  • 石家庄建设seo实战培训费用
  • 蜜雪冰城网页设计素材seo工作内容和薪资
  • 苏州网站建设费用超级外链自动发布工具
  • 温州建设网站公司市场营销平台
  • 微网站开发建站流程