uni-app调取接口的3种方式以及封装uni.request()详解

yizhihongxing

对于这个话题我可以提供以下完整攻略:

uni-app调取接口的3种方式以及封装uni.request()详解

在uni-app中,我们一般采用uni.request()方法来调用后端接口。下面我们将介绍三种调用方式以及如何封装uni.request()方法。

1. 直接调用

直接调用指的是将请求地址、请求类型、请求参数等信息直接写在uni.request()方法中,后端返回的数据会在success回调函数中返回,如下

 uni.request({
     url: 'http://xxx.xxx.xxx/rest/api/login',
     method: 'POST',
     data: {
         username: 'admin',
         password: '123456'
     },
     success: function(res) {
         console.log(res.data);//后端返回的数据
     },
     fail: function(res) {
         console.log('请求失败');
     }
 })

其中需要注意的是,调用后端接口时需要加上协议头,如上例中的http://

2. 配置文件调用

为了方便维护,我们可以将后端接口的地址和请求类型等信息统一放在配置文件中,然后在uni.request()方法中引用配置文件中的配置信息来调用后端接口。具体做法如下:

  1. 在uni-app项目目录下,创建一个config目录;
  2. 在config目录下创建一个config.js文件,用来存储后端接口的相关配置信息;
  3. 在config.js文件中添加以下代码:
const baseUrl = 'http://xxx.xxx.xxx/rest/api/';//后端接口地址

export default {
   baseUrl
}

需要注意的是,baseUrl的值需要加上协议头。

  1. 在需要调用后端接口的页面中引入config文件;
import config from '@/config/config.js'
  1. 在调用后端接口的时候,可以引用config文件中的baseUrl来请求后端接口,如下:
uni.request({
    url: config.baseUrl + 'login',
    method: 'POST',
    data: {
        username: 'admin',
        password: '123456'
    },
    success: function(res) {
        console.log(res.data);//后端返回的数据
    },
    fail: function(res) {
        console.log('请求失败');
    }
})

3. 封装uni.request()

为了方便多次调用后端接口,我们可以将uni.request()方法进行封装。封装后的代码如下:

const request = ({
    url,
    method = 'GET',
    data = {},
    header = {},
    showLoading = true
}) => {
    return new Promise((resolve, reject) => {
        //显示loading
        if (showLoading) {
            uni.showLoading({
                title: '正在加载,请稍后...'
            });
        }

        uni.request({
            url: config.baseUrl + url,
            method: method,
            data: data,
            header: header,
            success: function(res) {
                //隐藏loading
                if (showLoading) {
                    uni.hideLoading();
                }

                resolve(res.data);//返回后端数据
            },
            fail: function(res) {
                //隐藏loading
                if (showLoading) {
                    uni.hideLoading();
                }

                reject(res);
            }
        })
    })
}

export default request

这里我们定义了一个request()方法,用来封装uni.request()方法。其中,request()方法接收一个对象作为参数,对象中包含了请求地址、请求类型、请求参数等相关信息。这里我们还增加了一个showLoading参数,在调用请求时可设置是否显示加载中的提示。在方法中使用了Promise来对结果进行返回,便于后续进行调用。

使用封装后的request()方法,如下:

import request from '@/common/js/request.js'

request({
    url: 'login',
    method: 'POST',
    data: {
        username: 'admin',
        password: '123456'
    },
    showLoading: true
}).then(res => {
    console.log(res);
}).catch(error => {
    console.log(error);
})

以上就是uni-app调取接口的三种方式以及封装uni.request()方法的详细攻略,希望对你有帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:uni-app调取接口的3种方式以及封装uni.request()详解 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • vue + electron应用文件读写操作

    下面我将详细讲解关于“vue + electron应用文件读写操作”的完整攻略,其中包含了两条示例说明。 1. 环境准备 在开始编写应用程序之前,需要先进行环境搭建。要使用Vue和Electron配合进行文件读写操作,需要进行如下步骤: 确保已安装Node.js和npm包管理工具,建议安装最新版。 创建一个新项目,如下所示: “` mkdir vue-el…

    Vue 2023年5月27日
    00
  • Vue发布项目实例讲解

    下面就为大家详细介绍一下Vue发布项目的完整攻略。 1. 打包项目 在Vue项目开发完成后,需要将项目进行打包。Vue提供了一个命令行工具Vue CLI,可以使用Vue CLI将项目进行打包。 首先需要安装Vue CLI,可以在命令行中输入以下命令进行安装: npm install -g @vue/cli 安装完成后,在命令行中进入到项目根目录,使用以下命令…

    Vue 2023年5月28日
    00
  • Vue.js中的组件系统

    Vue.js是一个流行的JavaScript框架,其中一个主要的功能是组件系统。组件允许开发人员将页面分解为多个可重用的部分,从而使开发更高效和组件复用更简单。 下面将详细讲解Vue.js的组件系统,并提供两个示例来帮助您理解。 什么是Vue.js中的组件? 在Vue.js中,组件是构建Web页面的可重用元素。在页面中,每个组件都具有自己的HTML模板、Ja…

    Vue 2023年5月27日
    00
  • vite vue3 规范化与Git Hooks详解

    以下是“vite vue3 规范化与Git Hooks详解”的详细攻略。 概述 在前端开发中,如何进行规范化开发是一个十分重要的话题。同时,在团队协作中,代码的版本控制也是必不可少的一环。本文将介绍如何使用Vite和Vue3来实现前端规范化开发,并结合Git Hooks来实现代码的自动检测和提交。 Vite+Vue3规范化开发 创建项目 首先需要使用Vue …

    Vue 2023年5月28日
    00
  • vue打包后生成一个配置文件可以修改IP

    要修改Vue打包后生成的IP地址,需要进行以下步骤: 找到Vue项目的根目录下的config文件夹,其中包含了打包的配置文件,比如’prod.env.js’和’index.js’。 在’prod.env.js’中添加以下代码:API_ROOT: ‘”http://your_server_ip_address/api”‘,其中your_server_ip_ad…

    Vue 2023年5月28日
    00
  • JS基于ES6新特性async await进行异步处理操作示例

    以下是JS基于ES6新特性async await进行异步处理操作的完整攻略: 什么是Async/Await Async/Await是ES2017引入的异步编程新特性,通过async函数定义的异步函数和await关键字的使用,可以大大简化异步编程的代码复杂度,使代码更加清晰易懂。 Async/Await的使用方法 定义异步函数 异步函数的定义需要使用async…

    Vue 2023年5月28日
    00
  • ant design vue 表格table 默认勾选几项的操作

    Ant Design Vue 表格(Table)默认勾选几项的操作,可以通过在表格数据中为需要默认勾选的行数据添加一个 selected 属性,并且在表格操作栏添加一个全选按钮,并将其与表格的 rowSelection 属性绑定起来即可实现。 以下是完整的实现步骤: 设置表格数据源 首先,需要设置表格的数据源,可以使用一个数组对象来模拟,示例代码如下: da…

    Vue 2023年5月28日
    00
  • vue项目如何去掉URL中#符号的方法

    Vue.js是一个采用渐进式开发的JavaScript框架,路由系统使用的是Vue Router,该路由系统默认使用URL中的 “#”(hash) 字符来控制页面的跳转。但是,在某些场景下,我们想要去掉URL中的 # 符号。这里提供两种去掉 URL 中 # 符号的方法。 方法一:使用HTML5 History模式 HTML5 History模式会使用HTML…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部