编码思路:动态给页面onshow中插入待执行方法

小程序/vue中,页面onShow/mounted中执行的方法使我们发布前编写好的,那么在某些时候,我们需要动态修改onshow里执行的方法。
例如:有一个订单列表页,页面内100条订单,其中有待支付的订单,我们点击进入订单详情中,付款了这笔未付款的订单,此时返回订单列表页,是希望订单刷新的,但是如果将刷新列表的方法,直接写在页面的onshow周期中,如果用户未付款,直接返回的话,页面就会刷新,此时的这一步操作是无效的(因为订单并没有实际刷新,这次请求没有意义)。
所以,此时我们引入一个概念(待执行方法),以uni-app方法为例,我们在vuex中保存一个变量,叫onshowFunction,这样我们可以在需要插入的时候(如例子中的支付成功回调里,设置一个待执行事件),页面的onshow中,检测是否有待执行事件,如果有就执行,否则不执行,就可以动态操作onshow中的方法了。

阅读更多

编码思路:检测用户唯一标识是准备完毕后执行

(小程序/vue/app项目)中皆可使用,很多时候,很后台服务进行交互的时候,需要使用一个唯一交互凭证(openId/session等),来标记是这个用户进行操作的,一般在打开小程序后,在app.onLaunch里获取用户的登录凭证,这一步与后台交互,是有请求时间的,如果在打开的页面中,操作的事情,需要用到这个唯一凭证,获取唯一凭证的请求还没有收到结果时,就会发生一个问题,我需要凭证,但是凭证还没有拿到,这种情况,我们可以使用检测方法来检查是否成功。

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
//app.js
onLaunch(){
this.getUserId();//启动时候,在全局获取userId(全局变量等任何用的东西)
},
getUserId(){
wx.request({//請求有時間
url:'获取唯一凭证的接口',
success:(res)=>{
this.globalData.loginSession=res.data.loginSession
}
})
},
checkLoginSession(options){//检测准备完成方法
options=options||{};
if(this.globalData.loginSession){//准备完成,则调用成功回调
options.success&&options.success(this.globalData.loginSession)
}else{
setTimeout(()=>{//还未准备完成,则200ms后调用自身,重新检查,此时将options继承给自己
this.checkLoginSession(options)
},200)
}
},
globalData:{
loginSession:""
}

阅读更多

es6中Promise的一些例子

今天查看了一下promise的文档,写了一些例子,方便理解promise

阅读更多

centOs7.5 install nginx

###centOs7.5 安装 nginx

阅读更多

centOs7中 安装 maraidb

MariaDB是流行的跨平台MySQL数据库管理系统的分支,被认为是MySQL 的完全替代品。MariaDB是由Sun在Sun Microsystems合并期间被Oracle收购后,于2009年由MySQL的一位原始开发人员创建的。今天,MariaDB由MariaDB Foundation和社区贡献者维护和开发,目的是保留GNU GPL软件。

阅读更多