Taro@3.x+Vue@3.x+TS开发微信小程序,网络请求封装

2024-05-13 22:52

本文主要是介绍Taro@3.x+Vue@3.x+TS开发微信小程序,网络请求封装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考文档

  • Taro.request(option)

src/http 下创建 request.ts, 写入如下配置:

import Taro from '@tarojs/taro'
import { encryptData } from './encrypt' // 请求数据加密,可选console.log('NODE_ENV', process.env.NODE_ENV)
console.log('TARO_APP_PROXY', process.env.TARO_APP_PROXY)
const baseUrl = process.env.TARO_APP_PROXYinterface RequestParams {url: stringmethod: 'OPTIONS'|'GET'|'HEAD'|'POST'|'PUT'|'PATCH'|'DELETE'|'TRACE'|'CONNECT'data: anyheader?: anytimeout?: numberloadingTitle?: string[key: string]: any
}
export function request (params: RequestParams) {const { url, method, data, header, args: { timeout = 6000, loadingTitle = '', toastDuration = 1500 } } = paramsTaro.showLoading({title: loadingTitle,mask: true})return new Promise(resolve =>{Taro.request({data: encryptData(data, method),url: baseUrl + url,method: method,timeout: timeout,header: {'content-type': 'application/json;charset=UTF-8,text/plain,*/*',...header},success: (res) => { // 接口调用成功的回调函数Taro.hideLoading()console.log('success', res)if (res.data.message.code === 0) { // 具体参考接口响应的数据结构定义if (Array.isArray(res.data.data)) {resolve(res.data.data)} else {resolve({...res.data.data, success: true })}} else {console.log('message', res.data.message.message)resolve({ message: res.data.message.message, success: false })showError(res.data.message.message, toastDuration)}},fail: (res) => {Taro.hideLoading()console.log('fail', res)resolve({ message: res, success: false })showError('请求失败', toastDuration)},complete: (res: any) => { // 接口调用结束的回调函数(调用成功、失败都会执行)console.log('complete', res)}}).catch(e => {Taro.hideLoading()console.log('catch err', e)resolve({ message: e.errMsg, success: false })showError(e.errMsg, toastDuration)})})
}
function showError (message: string, duration = 1500) {Taro.showToast({title: message,icon: 'none', // 'error' 'success' 'loading' 'none'duration: duration})
}

src/http 下创建 index.ts 并导出通用请求:

import { request } from '@/http/request'export function getAction (url: string, parameter: any, args = {}) {return request({url: url,method: 'GET',data: parameter,args: args})
}
export function postAction (url: string, parameter: any, args = {}) {return request({url: url,method: 'POST',data: parameter,args: args,header: {'Content-Type': 'application/x-www-form-urlencoded'}})
}

在页面内进行网络请求

<script setup lang="ts">
import { ref } from 'vue'
import Taro, { useLoad, usePullDownRefresh } from '@tarojs/taro'
import { getAction } from '@/http/index'const url = {detail: '/api/detail'
}
const detailData = ref()
useLoad(() => {getDetail()
})
usePullDownRefresh(async () => {await getDetail()Taro.stopPullDownRefresh()
})
function getDetail () {getAction(url.detail, { id: 1 }).then((res: any) => {console.log('detail', res)if (res.success) {detailData.value = res.data} else {console.log('fail message', res.message)}})
}
</script>

这篇关于Taro@3.x+Vue@3.x+TS开发微信小程序,网络请求封装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/987039

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来