Maison > interface Web > uni-app > le corps du texte

Comment Uniapp implémente l'encapsulation des requêtes réseau

coldplay.xixi
Libérer: 2020-12-21 17:25:19
original
9751 Les gens l'ont consulté

Uniapp implémente la méthode d'encapsulation des requêtes réseau : implémentez d'abord la requête initiale ; puis créez un nouveau fichier [request.js], le code est [return new Promise((resolved, rejeté) => {uni.request ..] ;Enfin il suffit d'optimiser.

Comment Uniapp implémente l'encapsulation des requêtes réseau

L'environnement d'exploitation de ce tutoriel : système Windows 7, version uni-app2.5.1, cette méthode convient à tous. marques d'ordinateurs.>

Recommandé (gratuit) :

Tutoriel de développement d'uni-app

Méthode d'implémentation d'Uniapp pour l'encapsulation des requêtes réseau :

1. La requête initiale pour uniapp est utilisée comme suit :

uni.request({
    url: 'https://www.example.com/request', //仅为示例,并非真实接口地址。
    data: {
        text: 'uni.request'
    },
    header: {
        'custom-header': 'hello' //自定义请求头信息
    },
    success: (res) => {
        console.log(res.data);
     }.fail = (err) => {
     console.log(err);
  }
});
Copier après la connexion

2 Nous effectuons d'abord une simple encapsulation via Promise et créons une nouvelle requête. js :

//options参数我们后面会说
function service(options = {}) {
return new Promise((resolved, rejected) => {
uni.request({
   url: options.url, //仅为示例,并非真实接口地址。
   data: options.data,
   header: {
       'content-type': 'application/x-www-form-urlencoded',
       'accessToken': `${token}` //权限token 
   },
   success: (res) => {
      rejected(res.data);
   }.fail = (err) => {
   rejected(err)
 }
});
}
}
export default service;
Copier après la connexion

3 Enfin, nous optimisons à nouveau en fonction de l'étape précédente

//把配置项单独处理
import store from '/store/index.js'; //vuex  
let server_url=' ';//请求地址
let token = ' ';  凭证
process.env.NODE_ENV === 'development' ? '192.168.0.1' : 'http://***/api' ; //环境配置
function service(options = {}) {
       store.state.token && (token = store.state.token); //从vuex中获取登录凭证
       options.url = `${server_url}${options.url}`;
          //配置请求头
        options.header = {
        'content-type': 'application/x-www-form-urlencoded',
        'accessToken': `${token}` //Bearer 
    };
    return new Promise((resolved, rejected) => {
                //成功
        options.success = (res) => {
              
            if (Number(res.data.code) == 0) {  //请求成功
                resolved(res.data.data);
            } else {
                uni.showToast({
                    icon: 'none',   
                    duration: 3000,
                    title: `${res.data.msg}`
                });
                rejected(res.data.msg);//错误
            }
        }
              //错误
        options.fail = (err) => {
            rejected(err); //错误
        }
        uni.request(options);
    });
}
export default service;
Copier après la connexion

4. <🎜. >1. Créez une nouvelle page de pages. Le répertoire est le suivant :

┌─common

│ ├─request.js //Request<🎜. >

┌─ pages

│ ├─index

│ │ └─api.js //liste d'API

│ │ └─index.vue //Page fichier

├─static

├─store

│ ├─index.js //vuex

├─main.js

├─App.vue

├─manifest.json

└─pages.json

2. Configurez la liste des API.

import request from &#39;/common/request.js&#39;
export function login(data) {
  return request({
    url: &#39;/user/login&#39;,
    method: &#39;POST&#39;,
    data
  })
}
Copier après la connexion

3. Utilisez

import { login} from &#39;./api.js&#39;;  //引入需要的api
//发起请求
onLoad() {
login(&#39;parameter&#39;).then(data => {
   console.log(data);
});
}...
Copier après la connexion
sur la page.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal