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

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

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 v-for 多层循环嵌套获取行数的方法

    要在Vue的模板中多层循环嵌套并获取每层循环的行数,可以使用如下的方法: <template> <div> <div v-for="(group, index) in groups" :key="index"> <div v-for="(item, i) in gro…

    Vue 2023年5月28日
    00
  • vue实现评论列表功能

    下面是vue实现评论列表功能的完整攻略。 1. 初始化 首先,我们需要使用vue-cli初始化一个项目,使用以下命令: vue create project-name 初始化完成后,我们需要安装axios和bootstrap,使用以下命令: npm install axios bootstrap 2. 创建数据模型 我们需要先定义一个评论数据的模型,包含评论…

    Vue 2023年5月28日
    00
  • 详解Vue 全局变量,局部变量

    详解Vue 全局变量,局部变量 在Vue应用中,有时需要在各个组件之间共享全局的数据,同时也需要在某些组件内部使用局部的数据,这就需要用到Vue的全局变量和局部变量了。 全局变量 全局变量是指可以在任何Vue组件中使用的变量。要定义全局变量,我们需要在Vue实例中定义一个全局对象,然后在这个对象上添加变量。 // 定义全局对象 Vue.prototype.$…

    Vue 2023年5月28日
    00
  • VUE v-for循环中每个item节点动态绑定不同函数的实例

    要实现在VUE v-for循环中每个item节点动态绑定不同函数的实例,可以使用以下步骤: 在每个item节点上绑定一个唯一的key值,以便Vue能够追踪节点的增、删、移动操作。 <ul> <li v-for="(item, index) in items" :key="item.id"> {{…

    Vue 2023年5月28日
    00
  • VUE视频怎么添加时间地点的水印?

    添加时间地点水印的方法通常有两种,一种是使用CSS样式制作水印,另一种是使用JavaScript插件实现水印。 使用CSS样式制作水印 首先,我们需要在VUE组件的template中添加HTML代码,如下所示: <div class="video-wrapper"> <video src="your_video…

    Vue 2023年5月29日
    00
  • vue离开当前页面触发的函数代码

    当用户离开Vue页面时,我们可以使用beforeRouteLeave路由导航守卫去触发相应的函数代码。下面,我将详细讲解该攻略的应用步骤和示例说明。 步骤一:添加路由导航守卫 在Vue的路由配置中添加beforeRouteLeave守卫,并指定它所要触发的函数代码。以下是守卫函数的结构: beforeRouteLeave(to, from, next) { …

    Vue 2023年5月28日
    00
  • vue添加axios,并且指定baseurl的方法

    下面为你详细讲解“Vue添加Axios,并且指定BaseURL的方法”: 1. 安装 Axios 我们需要先安装 Axios 库,可以通过 npm 安装,命令如下: npm install axios –save 2. 引入 Axios 安装完成后,我们需要先引入 Axios 库,建议在 main.js 中引入,然后在 Vue.prototype 上挂载 …

    Vue 2023年5月29日
    00
  • Vue项目引进ElementUI组件的方法

    下面我将为你详细讲解“Vue项目引进ElementUI组件的方法”的完整攻略。 步骤一:安装ElementUI 首先,你需要在你的Vue项目中安装ElementUI。可以使用npm或yarn进行安装。 # 使用npm安装 npm install element-ui –save # 使用yarn安装 yarn add element-ui 步骤二:引入El…

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