这可以这样理解小程序已经把数据和视图绑定了起来,众所周知vue是数据双向绑定的,数据改变,视图也会相应的改变,而上面的那段话是不是可以理解为小程序也是双向绑定的,
在vue里修改数据可以写 this.a = b
小程序里修改数据需要 this.setData({"key":value})
那我们是不是可以这样理解在小程序修改数据的时候只是调用setData方法修改了定义中的变量,
跟vue中this.a = b 是一样的性质而只是写法不一样
明白了,这一点,说解决方法。。。
上面说了数据量大的时候不能用concat的原因,那我们这时候该怎么解决,只是我们可以想,既然数据和视图绑定在一起了,我们是不是可以用一个二维数组解决这个问题
大概思路是这样的
1,在data里定义一个空数组,
2,获取下拉数据
3,把获取的数组,this.setData上面定义的数组
例如this.setData({
[`arr[${b}]`]:res.data
})
这样就避免了setData数据过大而不报错的问题。
这时候数组发生了改变视图也会相应的改变,不过这样可能会出现一个问题,如果加载数据过多的时候视图会出现渲染层失败,
清理缓存重启。微信小程序经常会发生这样的情况,属于正常现象,有的是因为程序本身有问题,有的是网络不畅导致的,可以先退出程序找到设置清理缓存数据,再进入程序试一下。
onLoad 生命周期回调—监听页面加载
onShow 生命周期回调—监听页面显示
onReady 生命周期回调—监听页面初次渲染完成
onHide 生命周期回调—监听页面隐藏
onUnload 生命周期回调—监听页面卸载
1.执行某方法后数据刷新与重新加载
可直接调用 onLoad , onShow , onReady 方法
this.onLoad(),this.onShow(),this.onReady()
方法执行后会重新调用对应的执行方法,里面的数据会重新渲染执行
2.页面回退或隐藏显示后
当进入新的页面比如:添加,修改等,再返回当前页面重新渲染数据。
可直接将获取数据的方法写在onShow()中,当页面重新显示后就会再次运行onShow()中的方法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)