
这可以这样理解小程序已经把数据和视图绑定了起来,众所周知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数据过大而不报错的问题。
这时候数组发生了改变视图也会相应的改变,不过这样可能会出现一个问题,如果加载数据过多的时候视图会出现渲染层失败,
1.下拉刷新,在滑动到顶部时,bindscrolltoupper被调用,根据自己的业务逻辑请求即可.我的demo只是随机换了个关键字.2.上拉加载,在滑动到底部时,bindscrolltolower被调用,我这里是页数加一,根据自己的业务逻辑修改,然后将获取到的集合添加到scroll-view的数据集合里即可.
小程序下拉刷新步骤:
如需所有的页面都实现下拉刷新的话,那需要在全局文件app.json里的window里设置enablePullDownRefresh这个属性(与步骤1设置一样)。
完成以上步骤就可实现下拉刷新了~
ios端,页面无法下拉刷新(就是根本下拉不了,触发不了事件)。只有当右侧的滚动条滚动到底部后,再下拉刷新时才有效果。安卓端是没有问题的。
但是,开发者工具上测试一直都是没有问题的。
问题的原因:
是 因为在首页上父元素用到了绝对定位( position: fixed),导致了ios端无法下拉刷新 ,把绝对定位改为相对定位就可以了(position: relative)。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)