uniapp uni.requet()二次封装ts版

这篇具有很好参考价值的文章主要介绍了uniapp uni.requet()二次封装ts版。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

uni-app网络请求

uni-app题拱了uni.requet()方法,发起网络请求

uni.request({
    url: 'https://wwww.xxxx.cn/api/home/list', //仅为示例,并非真实接口地址。
    data: {
        text: 'uni.request'
    },
    header: {
        'custom-header': 'header' //自定义请求头信息
    },
    success: (res) => {
        console.log(res.data);
    }
});

uni.request请求的封装

src文件夹下创建utils文件夹,再创建request.ts文件,用于封装请求,使用promise封装

interface requestInt {
  url: string,
  method: 'GET' | 'POST',
  data: string | object | ArrayBuffer,
  options?: any,
}


class HttpRequest {
  request = (params: requestInt) => {
    let { url, method, data, options } = params
    uni.showLoading({
      title: '加载中...',
      mask: true
    });

    return new Promise<any>((resolve, reject) => {
      uni.request({
        url: `${import.meta.env.VITE_BASE_URL}${url}`,
        method,
        data,
        header: {},
        success: (res: any) => {
          uni.hideLoading();
          switch (res.statusCode) {
            case 200:
              resolve(res)
              break;
            default:
              uni.showModal({
                title: '温馨提示',
                content: '未知异常,请稍后在试!',
                showCancel: false,

              });
              reject(res)
          }
          console.log(`${method}请求类型++++++++++`);
        },
        fail: (err: any) => {
          uni.hideLoading();
          uni.showModal({
            title: '温馨提示',
            content: '接口异常,请稍后在试!',
            showCancel: false,

          });
          console.log(err, '接口fail++++++++++++');
          reject(err)
        }
      })
    })
  }

  // get请求
  get(url = '', data = {}, options = {}) {
    return this.request({
      url,
      method: "GET",
      data,
      ...options
    });
  }

  // post请求
  post(url = '', data = {}, options = {}) {
    return this.request({
      url,
      method: 'POST',
      data,
      ...options
    });
  }

}

export default new HttpRequest(); 

 在src文件夹下创建api文件夹,将前端所有的请求文件都放在里面

例如在api文件夹下创建home.ts文件 文章来源地址https://www.toymoban.com/news/detail-523707.html


import request from '@/utils/request'

export const frontpage = (data = {}) => {
  return request.get('frontpage', data)
}

在vue文件中使用

//home.vue
<template>
	<view class="content"></view>
</template>

<script setup lang="ts">
import { onMounted, ref } from 'vue'
import { frontpage } from '@/api/home'
import type { Vaccine } from '@/types/decl-type'

let vaccine = ref<Vaccine[]>([])

onMounted(() => {
	homeData()
})

const homeData = async () => {
	const res: any = await frontpage()
	console.log(res, '首页数据+++++++++')
	vaccine.value = res.data.data[0].vaccine
}
</script>

<style lang="scss"></style>

到了这里,关于uniapp uni.requet()二次封装ts版的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Uni-app + Vue3 + TS +Vite 创建项目

    npm 都很熟,可是与 npm 如此相似的 npx 是干嘛的呢?我们为甚要介绍 npx ? 由于 uni-app 官方提供创建命令使用的是 npx,所以我们先来了解下 npx 是干什么的?它与 npm 的区别。 npx 是 npm 的高级版本,它从 npm v5.2 版本开始引入的,与 npm 绑定在一起,无需额外安装,具有更大的功

    2023年04月15日
    浏览(72)
  • 基于Vant组件库二次封装组件(TS+Vue3.x环境)

    1. 今天的需求是封装一个 Navigation Bar 导航栏组件,目的是给到App几乎所有的页面复用:      2. 因为之前的项目里使用过Vant组件库,笔者第一时间想到了Vant组件库中的 NavBar 组件,和当前App的需求匹配度很高。Vant组件库的 NavBar 组件: 3. 相信你也发现了,Vant组件库默认主题

    2023年04月18日
    浏览(50)
  • uni-app vue3+ts+vite开发小程序采坑说明

    uniapp v3 搭建项目使用官方推荐命令 或者是使用 uniapp官方gitee 模板库 在项目启动前UI调用,建议使用 扩展组件(uni-ui)里面有很多组件,不能满足需求自己可以手动修改 uni_modules 为在插件市场下载出来的插件目录(uni-app官方维护的组件库,能够兼容vue3) 自动引用components文件

    2024年02月09日
    浏览(44)
  • vue3+ts+elementui-plus二次封装树形表格实现不同层级展开收起的功能

    一、TableTreeLevel组件 

    2024年02月15日
    浏览(54)
  • 小程序-uni-app:uni-app-base项目基础配置及使用 / uni-app+vue3+ts+vite+vscode

    目前(20230605)uni-app最新版本(3.8.4.20230531) 一、官网文档 微信开放文档 uni-app官网 二、创建项目 项目目标:vue3+ts+vite+vscode 创建以 typescript 开发的工程(如命令行创建失败,请直接访问 gitee 下载模板) npx degit dcloudio/uni-preset-vue#vite-ts uniapp-base ​ 本文创建成功 ​ 为了验

    2024年02月05日
    浏览(481)
  • 小程序-uni-app:uni-app-base项目基础配置及使用/uni-app+vue3+ts+vite+vscode

    目前(20230605)uni-app最新版本(3.8.4.20230531) 一、官网文档 微信开放文档 uni-app官网 二、创建项目 项目目标:vue3+ts+vite+vscode 创建以 typescript 开发的工程(如命令行创建失败,请直接访问 gitee 下载模板) npx degit dcloudio/uni-preset-vue#vite-ts uniapp-base ​ 本文创建成功 ​ 为了验

    2024年02月15日
    浏览(90)
  • uni-app微信小程序分享微信好友与分享到朋友圈功能【vue3+ts+uni-app+vite】

    微信小程序开发结束之后,点击右上角三个点显示: 1、创建share.ts文件 2、全局使用, 在 main.ts 里面 添加全局的 mixin 这样配置结束之后整个小程序所有页面点击右上角转发分享都走的这个文件,如果需要单个页面可以转发,可以看第三点 3、在需要的页面进行调用就行啦 a.

    2024年02月14日
    浏览(66)
  • vue3 ts element plus form表单二次封装详细步骤 (附参数、类型详细介绍及简单使用示例)

    上篇table 表格封装 讲到项目中经常会用到 table 表格,所以做了封装。当然,form 表单使用的频率依然很高,所以和封装 table 表格的思路相似,对 form 表单也做了一个二次封装的组件。 查看国内预览站 查看国外预览站 1. EasyForm 表单组件封装 src/components/EasyForm/index.vue Form 表单

    2024年02月07日
    浏览(60)
  • 手写类似于BetterScroll样式的左右联动菜单 uni-app+vue3+ts (使用了script setup语法糖)

     注意:在模拟器用鼠标滚动是不会切换光标的,因为使用的是触摸滑动。【自定义类型贴在最后了】 script 部分如下:  template部分如下: scss样式:  category.d.ts main-arr.d.ts  

    2024年02月05日
    浏览(46)
  • uniapp+vue3+vite+ts搭建项目引入uni-ui和uviewPlus组件库

    一、创建项目架构 首先使用官方提供的脚手架创建一个项目 在这里插入代码片 ,这里我创建的 vue3 + vite + ts 的项目: (如命令行创建失败,请直接访问 gitee下载模板) 二、下载依赖 启动 三、下载安装包 引入uni-ui src/package.json 文件配置easycom模式 引入uview-plus main.ts配置 u

    2024年02月13日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包