接口的运行过程

本文介绍了如何在typescript项目中创建一个api文件夹,使用Pinia库创建store来管理用户列表的请求和数据存储。详细讲解了如何封装请求接口、创建store中的用户列表仓库以及在页面中调用接口并处理返回数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、在api文件夹创建一个ts文件,用于管理需要的api

// 引入封装好的 request
import request from '@/plugins/request'

//枚举API
enum API {
  // 用户列表:USERLIST是一个常量,表示API的URL或路径
  USERLIST = '/admin/base/sys/role/page'
}

//导出用户列表接口userList 
//在使用该接口时,data: any为接收到的形参,不限制data的数据类型
export const userList = (data: any) =>
  //向API.USERLIST这个地址发送一个post请求,携带的参数为接收到的data
  request.post<any, any>(API.USERLIST, data)

//request.post函数会返回一个Promise,这个Promise在请求成功时会解析为服务器返回的数据

2、在store中创建一个仓库,用于存放用户列表的仓库

import { defineStore } from 'pinia'
//引入api
import { userList } from '@/api/information/index.ts'

//创建store实例,'information'此处一般与文件名一致
export const useManageStore=defineStore('information',{
    state:()=>{
       // 用户列表的数据
       userListData: []
    },
    actions:{
        // 获取用户列表的方法:这里的data是在使用的网页传递过来的
        async userListMethod(data:any){
            const result:any=await userList(data)
            if(result.code==1000){
                this.userListData=result
//如果需要的是接口数据,酒返回数据;不需要数据(只需要确定调用是否成功),可以返回'ok',然后在页面调用时需要写 if (result == 'ok') {
                return this.userListData
            }else {
                //抛出一个promise对象,返回错误信息
                return Promise.reject(new Error(result.message))
            }
        }
    }
})

3、在需要使用的页面中,定义函数

//引入仓库
import useManageStore from '@/store/modules/information.ts'

//定义调用接口时需要传递的参数,这个参数是从接口文档获取的,可以在网络的载荷里面看到
const data= reactive({
  page: 1,
  size: 20
})

//设置默认传递参数为空
const getData= async (reqData:any =null)=>{
    //后续有可能需要传递参数,需要传递参数的时候是data,不需要传递参数是reqData
    const requestData=reqData || data
    const result=await useManageStore().userListMethod(requestData)
    // 解构出调用接口的参数的相关数据
    const { page, size, total } = result.data.pagination
    //拿到用户数据,给其他数据赋值
    tableData.value = result.data.list
    currentPage.value = page
    pageSize.value = size
    totalNum.value = total
}


//因为在仓库中已经设置过Promise.reject(new Error(result.message)),所有这里可以不用写if(result.code ==200)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值