vue混合app开发框架_mpvue框架

vue混合app开发框架_mpvue框架1.npm安装npminstallflyio–save.2.src下新建utils/request.js文件importFlyfrom’flyio/dist/npm/wx’constfly=newFly()consthost=’https://rmall.ukelink.net’//添加请求拦截器fly.interceptors.request.use…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.npm安装

npm install flyio --save.

2.src下新建utils/request.js文件

import Fly from 'flyio/dist/npm/wx'
const fly = new Fly()
const host = 'https://rmall.ukelink.net'
// 添加请求拦截器
fly.interceptors.request.use((request) => { 
   
  wx.showLoading({ 
   
    title: '加载中',
    mask: true
  })
  console.log(request)
  // request.headers["X-Tag"] = "flyio";
  // request.headers['content-type']= 'application/json';
  request.headers = { 
   
    'X-Tag': 'flyio',
    'content-type': 'application/json'
  }
 
  let authParams = { 
   
    // 公共参数
    'categoryType': 'SaleGoodsType@sim',
    'streamNo': 'wxapp153570682909641893',
    'reqSource': 'MALL_H5',
    'appid': 'string',
    'timestamp': new Date().getTime(),
    'sign': 'string'
  }
 
  request.body && Object.keys(request.body).forEach((val) => { 
   
    if (request.body[val] === '') { 
   
      delete request.body[val]
    };
  })
  request.body = { 
   
    ...request.body,
    ...authParams
  }
  return request
})
 
// 添加响应拦截器
fly.interceptors.response.use(
  (response) => { 
   
    wx.hideLoading()
    return response.data // 请求成功之后将返回值返回
  },
  (err) => { 
   
    // 请求出错,根据返回状态码判断出错原因
    console.log(err)
    wx.hideLoading()
    if (err) { 
   
      return '请求失败'
    };
  }
)
 
fly.config.baseURL = host
 
export default fly

3.main中引用到原型

import fly from './utils/request'
Vue.prototype.$fly = fly

4.使用

this.$fly.request({ 
   
      method: 'post', // post/get 请求方式
      url: '/mms/country/queryValidZoneListForMallHome',
      body: { 
   }
    }).then(res => { 
   
      console.log(res)
    })

关于请求拦截

比方说我们每次请求我们自己的服务器接口的时候需要带上appID,用户登陆后需要带上openId


// 请求拦截
fly.interceptors.request.use((request)=>{ 
   
 
  request.body.appId = 'xxx'
    // 用户的openId在获取之后添加到全局变量中如果存在,我们将它添加到请求参数里面
  let openId = Vue.prototype.globalData.openId;
  if(openId){ 
   
    request.body.openId = openId
  }
})

当服务器发生错误,或者用户网络错误导致请求失败的时候,我们可以添加一个响应拦截

// 响应拦截
fly.interceptors.response.use(
  (response) => { 
   
 
 
  },
  (err) => { 
   
    //发生网络错误后会走到这里
    //return Promise.resolve("ssss")
    wx.hideLoading();
    wx.showToast({ 
   
      title:'网络不流畅,请稍后再试!',
      icon:'none',
    });
 
  })
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195969.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java微服务架构有哪些_漂浮服务区后端

    java微服务架构有哪些_漂浮服务区后端在本文中我们将主要研究目前主要的BaaS平台的功能,以及Google,Facebook,Apple等互联网巨头在BaaS领域的动作。同时我们也会关注国内一些主流BaaS平台的发展以及国内互联网巨头如百度,华为等在BaaS领域的投入发展。1.国外主流的BaaS平台 在BaaS领域,有几件事情值得关注:2013年4月,Facebook收购Parse;2013年12月,Paypal收…

    2025年5月27日
    0
  • delphi多线程[通俗易懂]

    delphi多线程[通俗易懂]   Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多线程编程的全部,我写此文的目的在于对此作一个补充。  线程本质上是进程中一段并发运行的代码。一个进程至少有一个线程,即所谓的主线程。同时还可以有多个子线

    2022年10月22日
    0
  • sstream函数

    sstream函数使用stringstream对象简化类型转换C++标准库中的提供了比ANSIC的更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换。为什么要学习如果你已习惯了风格的转换,也许你首先会问:为什么要花额外的精力来学习基于的类型转换呢?也许对下面一个简单的例子的回顾能够说服你。假设你想用sprintf()函数将一个

    2022年6月4日
    34
  • 数据库中存储的是什么?数据库存取的是地址

    数据库到底存储的什么呢? 是具体的文件,音频,文档,表格,字段吗?其实都不是.数据库中存储的是地址,比如用户想看视频,用户通过浏览器访问视频网站的网址,视频网站服务器解析用户浏览器的请求(url),然后服务器访问视频网站的数据库服务器,从数据库服务器中得到该视频存放的地址(路径),然后返回给用户浏览器,用户浏览器再利用此地址访问该视频,即完成了一次查看视频的网络服务。觉得简短

    2022年4月3日
    65
  • 新版白话空间统计(8):莫兰指数小结

    新版白话空间统计(8):莫兰指数小结本节对前面写的莫兰指数部分留下的一下小问题进行解答,里面包括一些读者朋友们通过邮件提出的一些问题。Q1:ArcGIS中,计算莫兰指数的工具里面的那个Row(行标准化)是拿来干嘛的?A:…

    2022年6月25日
    60
  • Linux 定时执行shell 脚本「建议收藏」

    Linux 定时执行shell 脚本「建议收藏」2019年第85篇文章,总第109篇文章本文大约2000字,阅读大约需要6分钟crontab可以在指定的时间执行一个shell脚本以及执行一系列Linux命令。定时执行sh…

    2022年9月3日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号