小程序mpvue中flyio的使用方法
Fly.js 一个基于Promise的、强大的、支持多种JavaScript运行时的http请求库. 有了它,您可以使用一份http请求代码在浏览器、微信小程序、Weex、Node、React Native、快应用中都能正常运行。同时可以方便配合主流前端框架 ,最大可能的实现 Write Once Run Everywhere。本文主要介绍一下如何在微信小程序中使用flyio。
简单用法请直接移步官方文档查看,https://github.com/wendux/fly
下面主要说一下它的拦截器的使用方法:
/**
* Created by zhengyi.fu on 2018/8/31.
*/
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;
用法:将此文件引入main.js然后直接挂载到vue原型上
this.$fly.request({
method:"post", //post/get 请求方式
url:"/mms/country/queryValidZoneListForMallHome",
body:{}
}).then(res =>{
console.log(res)
})
下面在介绍一种微信小程序内置的请求接口的方法:
/**
* Created by zhengyi.fu on 2018/8/31.
*/
const host = 'https://rmall.ukelink.net';
function request(url, method, data, header = {}) {
wx.showLoading({
title: '加载中' //数据请求前loading
})
return new Promise((resolve, reject) => {
wx.request({
url: host + url, //仅为示例,并非真实的接口地址
method: method,
data: data,
headers: {
'content-type': 'application/json' // 默认值
},
success: function (res) {
wx.hideLoading();
resolve(res.data)
},
fail: function (error) {
wx.hideLoading();
reject(false)
},
complete: function () {
wx.hideLoading();
}
})
})
}
function get(obj) {
return request(obj.url, 'GET', obj.data)
}
function post(obj) {
return request(obj.url, 'POST', obj.data)
} export default {
request,
get,
post,
host
}
this.$http.post({
url:"/mms/country/queryValidZoneListForMallHome",
data:{
"categoryType":"SaleGoodsType@sim",
"streamNo":"web_bss153570682909641893",
"reqSource":"MALL_H5",
"appid":"string",
"timestamp":1535706829096,
"sign":"string"
}
}).then(res =>{
console.log(res)
})
小程序mpvue中flyio的使用方法的更多相关文章
- 小程序mpvue中动态切换echarts图表
如果你用mpvue,而且还想用echarts,那么这个包你可以以来一下 https://github.com/F-loat/mpvue-echarts 考虑到多个页面都休要用,所以抽出来作为一个组件, ...
- 总结微信小程序开发中遇到的坑
总结微信小程序开发中遇到的坑,一些坑你得一个一个的跳啊,/(ㄒoㄒ)/~~ 1,页面跳转和参数传递实例 首先说一下我遇到的需求有一个我的消息页面,里面的数据都是后端返回的,返回的数据大致如下,有一个是 ...
- 微信小程序的onLaunch()方法和onShow()方法
在app.js里面你会发现一个onLaunch()方法,这个方法是当小程序加载完毕后就执行的方法,此外,还有一个onShow()方法,先看下面的代码 app.js //app.js App({ onL ...
- 微信小程序开发过程中tabbar页面显示的相关问题及解决办法!
在微信小程序的开发过程中如果有使用过tabbar的同学,我相信一定会遇到一些困扰.为什么有些时候代码中明明已经在app.json里面增加了tabbar,可以页面中就是不显示呢?可不可以有些页面显示ta ...
- 解决微信小程序开发中wxss中不能用本地图片
微信小程序开发中wxss中不能用本地图片,我们可以用将我们的图片传到服务器上,然后直接引用在线地址.但是当我们没有服务器时,我们可以用"图床",这个具体可以百度.这里我们用第二种方 ...
- 微信小程序mpvue项目使用WuxWeapp前端UI组件
前言:这是一篇简单粗暴的使用指南 在最近的小程序项目里前端UI框架最后选择使用WuxWeapp,这篇文章记录一下如何在小程序mpvue项目中使用该UI组件. 步骤一:下载源码 (地址在这里)主要是里面 ...
- 微信小程序引入腾讯地图API方法
微信小程序大热,在小程序过程中,我们很多时候都会用到地图.不管是企业的地址,还是商家的配送都会用到地图: 我在刚写地图这一块时,在网上也参考了很多网友的方法,始终有Bug(类似于地图拖拽是画面抖动,无 ...
- 微信小程序开发教程 #043 - 在小程序开发中使用 npm
本文介绍了如何在微信小程序开发中使用 npm 中包的功能,大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频版更新. 微信小程序在发布之初没有对 npm 的支持功能,这也是目前很多前端开发 ...
- 全栈开发工程师微信小程序-上(中)
全栈开发工程师微信小程序-上(中) width: 750rpx; 750rpx代表与屏幕等宽,rpx的缩写responsive pixel,这个单位是可以根据屏幕大小进行自适应调整的像素单位. 小程序 ...
随机推荐
- 制作的excel表格如何放到微信公众号文章中?
制作的excel表格如何放到微信公众号文章中? 我们都知道创建一个微信公众号,在公众号中发布一些文章是非常简单的,但公众号添加附件下载的功能却被限制,如今可以使用小程序“微附件”进行在公众号中添加附件 ...
- 《Python测试开发技术栈—巴哥职场进化记》—软件测试工程师“兵器库”
上文<Python测试开发技术栈-巴哥职场进化记>-初来乍到,请多关照 我们介绍了巴哥入职后见到了自己的导师华哥,第一次参加团队站会,认识了团队中的开发小哥哥和产品小姐姐以及吃到了公司的加 ...
- 实型(浮点型):float、double
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<stdlib. ...
- 关于Dapper实现读写分离的个人思考
概念相关 为了确保多线上环境数据库的稳定性和可用性,大部分情况下都使用了双机热备的技术.一般是一个主库+一个从库或者多个从库的结构,从库的数据来自于主库的同步.在此基础上我们可以通过数据库反向 ...
- LeetCode 91,点赞和反对五五开,这题是好是坏由你来评判
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题的第57篇文章,我们一起来看看LeetCode第91题,解码方法(Decode ways). 这道题官方给定的难度 ...
- VS2005 如何打开VS2008的工程 2009-06-24 20:22
大家都碰到过用2005打开2008的工程吧.2008打开2005是没有问题,但是反过来呢,却不可以.当用2005打开2008时,看着工具提示要进行工程转换心里高兴吧,当转换后发现工程无法加载是不是很居 ...
- python3 - selenium常用的参数
# 选用开发者模式,创建一个浏览器对象,可避免被检测到是selenium模拟浏览器 chrome_options = webdriver.ChromeOptions() chrome_options ...
- java泛型笔记
目录 概述 什么是泛型?为什么使用泛型? 例子 特性 使用方式 泛型类 泛型接口 泛型通配符 泛型方法 泛型方法的基本用法 类中的泛型方法 泛型方法的基本用法 泛型方法与可变参数 静态方法与泛型 泛型 ...
- install-newton部署安装--------控制节点
#################################################################################################### ...
- java项目的心得,java项目的代码层次的架构划分
java项目使用的架构是ssm(Spring+SpringMVC+MyBatis). 一.后台代码一般分三层,Controller,Service,Dao. 1.Controller层是对前端或者接口 ...