需求
因小程序迭代太快了,很多接口都要兼容处理,
比如网络请求、拦截、下载文件等接口有并发限制,
功能加强,跨页面通讯、跨页面传值、数据响应式、接口Promise化、 mixins 等,
还有一些接口如果用户第一时间没有同意授权会无法正常使用,
该库就是为了处理这些情况而生。
依赖
无
安装
npm install --save weapp-extra
mpvue
main.js
Vueprototype$zls = Zls const app = Appappappapp = config: navigationBarTitleText: '首页'
index.vue
...
原生示例脚手架
请先安装构建工具 - zls-cli
npm install -g zls-cli zls new weapp-template ProjectFolder cd ProjectFolder npm run dev
执行API接口
突破了网络请求、下载文件等接口有并发限制,支持大量网络请求
extra.api(wxapi, options, ...params)
参说明数
wxapi: 接口名称(如'getLocation','getUserInfo')
options: 微信接口OBJECT参数
...params: 微信接口其参数
返回值
Promis对象
执行权限API接口
extra.authApi (wxapi, scope = null, must = 1, tip = {}, errorText = {}, options, ...params)
参说明数
wxapi: 接口名称(如'getLocation','getUserInfo')
scope: scope(包含scope.,如'scope.userLocation')/false(不验证scope权限执行)
must: 执行方式 -1:必须开启权限执行(必须设置scope)/0:静默执行没有权限不提示/1:没权限下提示一次
tip: 没有权限时候的提示弹窗/false不显示弹窗
errorText: 开启权限失败的提示弹窗/false不显示弹窗
...params: 微信接口其参数
返回值
Promis对象
用户授权接口
extra.login(successCb, errorCb, ignorecheck = false)
参说明数
successCb: 用户授权成功回调方法,successCb(res:用户授权信息,v:login信息用于与服务器传递获取sessionKey)
errorCb 用户还没授权回调方法
ignorecheck 是否忽略判断sessionKey是否过期
通知用户授权情况
由于现在微信小程序不能主动弹出用户授权窗口,必须用<button open-type="getUserInfo" bindgetuserinfo='getUserInfo'>登录</button>
来触发,那么我们有两种选择
-
如果用户没有授权在页面显示一个授权按钮
-
建立一个授权专用的页面里面放置一个授权按钮,当用户没有授权的时候跳转到该页面
然后当用户点击了 按钮 会触发 getUserInfo 事件,我们在该事件中调用通知extra.emitLogin(data)
,具体看下面 “获取用户信息” 示例。
示例
获取用户信息
//首页
const app = const extra =
//登录页
//login.jsconst app = const extra =
<!--index.wxml--> 登录
获地理位置
//index.jsconst app = const extra =
发起请求
设置请求域名
设置了以下的post,get都可以忽略域名部分
extra
前置拦截(发起请求前)
this$zls
后置拦截(收到返回数据后)
this$zls
发起POST、GET
//访问http://baidu.comextra //访问http://baidu.com/qextra
同时发起30个请求
for let i = 1; i <= 30; i++ extra
Page 增强
内部对 setData 进行了性能优化
//替换掉 Page()extra