1.小程序返回刷新的问题
介绍:小程序页面中都有属于自己的data对象,b页面可以修改a页面的数据,跳转的页面可以修改路由栈堆里存储页面的data对象,那么对于小程序页面的刷新可以如下
简单的b->a
b页面中使用(下面的思路最好封装)
getCurrentPage获取上一页面得refresh使其为true ,在onshow页面中,如果refresh为true则调用该页面的获取数据接口
复杂的c->b b->a
那么在b页面中的onshow中判断refresh为true时将上个页面的refresh修改但不返回,这样无论你在b页面跳转到什么页面返回到a页面时a都会刷新因为a页面缓存的refresh已经修改
//代码工具块
util.Back=function(is_skip,currentTab){
var pages=getCurrentPages()
var current=pages[pages.length-2]
current.setData({
isRefresh:true,
currentTab:currentTab?currentTab:0
})
if(is_skip){
wx.navigateBack({
delta: 0,
})
}
}
2.vue刷新
介绍:vue虽然每个页面都有自己的data,但是页面之间不能互相修改,那么页面之间不能做交互,我的做法是利用vuex全局都使用这个变量来交互。
简单的b->a
在vuex中添加refresh当页面需要修改就可以改变该属性,
复杂的c->b b->a
再增加一个属性refresh_2,在a页面可以对refresh和refresh_2同时判断