问题当同一个页面组件被反复进入时由于在mpvue中他们用的是一套vm,所以后面渲染的数据就会将前面页面的数据覆盖,这样在我们回退时就不会有以前页面的记录,一直会是最后一张页面的记录
原因
如图所示,在页面组件被created 此后,无论在小程序内该页面被关闭被隐藏被开启,该页面组件都不会被销毁,一直是在不停的修改同一个vue实例的data数据
思路每次当我们对同一页面组件进行跳转的时候将该页面的数据this.$data push进数据栈中,当在该页面组件执行回退事件unload是将最后放入的数据弹出,也就是前一个页面的数据,再将数据栈中的最后一个数据复制给this.data 对象。这样数据栈中数据的数量将会等于小程序页面栈中该页面组件的数量,也等于该页面组件执行回退事件的次数,当所有的回退事件执行完毕,数据栈也将被清空
效果
跳转压入
回退弹出当页面栈中该页面组件全部回退完时数据栈也被清空