内容简介:5、尾言
- 微信小程序基础
-
熟悉
web开发的朋友可能对axios情有独钟。 -
wx.request的二次封装 -
api的集中管理和使用
2、配置 baseUrl
-
一般情况下,项目中的
baseUrl域名前缀、登录的code、用户信息等都是配置在app.js中
//app.js
App({
onLaunch: function () {
wx.login({
success: res => {
if (res.code) {
this.globalData.loginCode = res.code // 获取的code码,以进一步换取用户信息
// res: {
// code: "061Zltjh1sXj6s0z96hh1Z1njh1Zltj5"
// errMsg: "login:ok"
// }
} else {
console.log('登录失败!' + res.errMsg)
}
}
})
},
globalData: {
userInfo: null,
loginCode: null,
baseUrl: 'https://...'
}
})
复制代码
3、封装 wx.request
-
在小程序目录下建立
utils文件夹,并在文件夹下创建request.js文件
// request.js
const request = (options) => {
return new Promise((resolve, reject) => {
const { data, method } = options
if(data && method !== 'get') {
options.data = JSON.stringify(data)
}
wx.request({
header: { 'Content-Type': 'application/json' },
...options,
success: function(res) {
if(res.data.code === 2000) {
resolve(res.data)
} else {
reject(res.data)
}
},
fail: function(res) {
reject(res.data)
}
})
})
}
export default request
复制代码
4、 api
的集中管理和使用
-
在小程序目录下建立
api文件夹,并在文件夹下创建user.js文件(文件名推荐按模块命名) -
用过
axios的朋友接下来应该会感觉很熟悉
// user.js
import request from '../utils/request.js'
// baseUrl也可拼接在request.js中,当有多个鉴权模块,放在这里更灵活
const baseUrl = getApp().globalData.baseUrl
export function apiLogin(data) {
return request({
url: `${baseUrl}/user/login`,
method: 'post',
data
})
}
export function apiGetUserInfo() {
return request({
url: `${baseUrl}/user/userInfo`,
method: 'get'
})
}
export function apiModifyUserPassword(data) {
return request({
url: `${baseUrl}/user/modifyPassword`,
method: 'put',
data
})
}
export function apiLogout() {
return request({
url: `${baseUrl}/user/logout`,
method: 'delete'
})
}
复制代码
- 在页面中使用
// pages/login/login.js
import { apiLogin } from '../../api/user.js'
Page({
onLoad: function (options) {
this.login()
},
login() {
apiLogin({
// api params
}).then(res => {
// handle success
}).catch(error => {
// handle error
})
}
})
复制代码
5、尾言
-
由于涉及到
ES6语法,需要在本地设置中开启ES6转ES5 -
小程序开发过程中应注意
this指向性问题。 - 感谢浏览,若有不足之处请指正,欢迎留言探讨。
以上所述就是小编给大家介绍的《微信小程序--wx.request封装和使用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 小程序封装wx.request请求并创建接口管理文件
- 小程序封装路由文件和路由方法,5种路由方法全解析
- Hacker News热议:封装包那么多,程序员还用学习算法吗?
- WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性)
- 封装JDBC—非框架开发必备的封装类
- SpringBlade 2.3.2 发布,增加 OSS 封装及单元测试封装
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。