有一些常用的东西,如 http
请求、弹窗、错误处理等等,如果在每个页面都引用一遍,会增加不必的代码量,我们可以在 app.js
中对 Page
对象进行简单地封装,从而让 Page
的能力更强
Page封装
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
| import $http from './plugins/http.js';
App({ showSuccess (title, hideLoading) { if (hideLoading) wx.hideLoading(); wx.showToast({ title, mask: true, duration: 500, icon: 'success' }); },
showError (title, content, hideLoading) { if (hideLoading) wx.hideLoading(); wx.showModal({ title, content, showCancel: false }); },
enhancePage() { const oPage = Page; Page = config => oPage(Object.assign(config, { $http, $showSuccess: this.showSuccess, $showError: this.showError, $showLoading: (title) => wx.showLoading({ mask: true, title: title }), $hideLoading: () => wx.hideLoading(), })); }, onLaunch() { this.enhancePage(); },
|
在页面中的应用
1 2 3 4 5 6 7 8 9
| Page({ onLoad() { this.$http('/api').then(() => ...) this.$showSuccess('请求成功') this.$showError('请求失败', '请稍后重试') this.$showLoading('数据加载中') this.$hideLoading() } })
|
全文完。