上拉加载与下拉刷新
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| page页面json中: "enablePullDownRefresh": true
page页面js中有这两个函数:
onPullDownRefresh: function() { this.setData({ playlist: [] }) this._getPlaylist() },
onReachBottom: function() { this._getPlaylist() },
下拉刷新请求完数据后 wx.stopPullDownRefresh()
|
云函数路由优化 tcb-router
一个用户在一个云环境只能创建 50 个云函数
假如小程序非常复杂,50 个云函数不能够满足业务需求怎么办?
相似的请求归类到同一个云函数处理
tcb-router 是一个 koa 风格的云函数路由库
通俗理解就是可以把很多个接口归类到同一个云函数内。
github-tcb-router: https://github.com/TencentCloudBase/tcb-router
koa 洋葱模型…
安装:
1 2
| 在使用到tcb-router的云函数目录下打开命令行,输入命令进行安装 npm install --save tcb-router
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| const TcbRouter = require('router');
exports.main = (event, context) => { const app = new TcbRouter({ event });
app.use(async (ctx, next) => { ctx.data = {}; ctx.data.openId = event.userInfo.openId await next(); });
app.router(['user', 'timer'], async (ctx, next) => { ctx.data.company = 'Tencent'; await next(); });
app.router('user', async (ctx, next) => { ctx.data.name = 'heyli'; await next(); }, async (ctx, next) => { ctx.data.sex = 'male'; await next(); }, async (ctx) => { ctx.data.city = 'Foshan'; ctx.body = { code: 0, data: ctx.data}; });
app.router('timer', async (ctx, next) => { ctx.data.name = 'flytam'; await next(); }, async (ctx, next) => { ctx.data.sex = await new Promise(resolve => { setTimeout(() => { resolve('male'); }, 500); }); await next(); }, async (ctx)=> { ctx.data.city = 'Taishan';
ctx.body = { code: 0, data: ctx.data }; });
return app.serve();
}
小程序端:
wx.cloud.callFunction({ name: "router", data: { $url: "user", other: "xxx" } }).then((res) => { console.log(res) })
|
上面 tcb-router 代码会按照洋葱模型执行,即先从上往下逐个进入中间件,再从下往上逐个退出中间件。
本地存储(缓存)
1 2 3 4 5 6 7
| wx.setStorageSync(key, data); wx.setStorage(key, data);
wx.getStorageSync(key); wx.setStorage(key);
|
api 设置 title
1 2 3
| wx.setNavigationBarTitle({ title: "", });
|
背景播放音
BackgroundAudioManager 全局唯一的背景音频管理器
1 2 3
|
"requiredBackgroundModes": ["audio", "location"]
|
1 2 3 4 5
| const backgroundAudioManager = wx.getBackgroundAudioManager();
backgroundAudioManager.src = 音频链接; backgroundAudioManager.title = 音频标题;
|