00:01
Hello,同学们好,我是童样老师,这节课我们来跟大家讲解一下我们的查询订单时候的业务流程是怎么样的,然后呢,这里面呢,我们先看一下我们的是在这个list页面,这个文件夹当中有的就是我们的点击查询之后出现了这个列表的内容,然后呢,在一般在冗长列表的页面当中,我们官方推荐我们使用什么,直接在页面利用页面的滚动。啊,所以我这里面并没有使用到大家常见的一些常列表Miss view的滚动,因为官方的小程序当中,在使用页面滚动的时候,其实它使用的就是一个原生的一个滚动的方式,会比我们平时使用到的一些overflow啊,这样子带来的流畅度会好很多,所以说我们一般在场列表的时候,建议大家直接使用官方自己的页面滚动,而不需要进行任何的score view啊,或者其他的一些组件的配置的内容啊,在这里面呢,我们先看一下啊,这有个小小的注意的点,我们先去到我们的配置项当中,我们开启这一个animal pro down refresh,这是什么?这是我们的一个下拉刷新。
01:07
看吧,下拉刷新的这个配置,这个配置好处什么地方呢?它是方便我们,因为我们都知道小程序它并不是网页。所以说它并没有刷新的按钮,所以这个时候呢,我们需要什么在页面当中能够承载一种下拉刷新的一个业务,能够方便我们用户实现一些新数据的获取的一个流程,所以这里面我们一般开启一个animal的pro flash这样的一个配置项,然后呢,回到我们的呃逻辑当中,我们先讲解一下逻辑当中的内容,逻辑当中呢,我们生命有几个状态,首先这里面有一个current date,而current date当中呢,我们全局安装了一个什么MPS,这是么一个通用的一个。小型的。日期。处理类库。通过它呢,我们方便的时间,对于我们的时间的一些计算和呈现的形式的方法。
02:01
他们啊,这个就是我们当前的一个日期对一象,然后这是我们的一个时间的一个处理方式啊,但现在是空制不串,因为我们进去之后根据当前的时间再去计算它现在的一个日期格式啊,但现在我们一开始设置它的时候,默认为什么为控制不串,然后onf fod这个东西呢,是我们这里的一个展开这里的一个的功能啊,当然这个是由于没有下级站点所点开说面东西啊,有二级站点之后展开是索能看到它有对应的内容,然后呢,这里一个list就是我们的列表项了哈,这是我们的。常规的一个列表项,然后呢,这里面就是我们的什么记录总数。对,记录总数是因为我们待会会实现实现实现一个上拉刷新,上拉刷新的时候呢,肯定要记录到总的数量,以便于我们判断是否已经到了所所有内容都已经加载完了啊,这样的话就不会在持续性的每次上来的时候都会去刷新得到新的数据,因为有可能数据已经超了或已经够了,就不用再去刷新了。
03:02
页码呢,就是我们的什么叫分页功能了哈。就分页页码。因为有的数据特别多的时候呢,我们在刷刷新的过程当中,肯定不能够不断的去加载很多内容,我们要根据页码一下子先显示个五六条十条,然后呢不断下新,再逐渐下载,就需要页码的配合,OK,这是我们基础的状态一些的声明的一些方式,往下的地方呢,我们一开始进来的时候呢,No的时候,我们执行一个get list get list就是我们整个业务核心当中获取整个列表的一个函数。好在这个列表函数当中呢,首先这里面我们也要有个东西哈,就是什么这一步哈,先判断。如果已经有了。总数。那么就要去根据。宿主是否?数组啊列表哈,列表的数量。达到了总数。
04:04
来。判断是否继续请求。啊,同学们这里面的判断,因为我们什么就是第一个它因为开始默认为零,我们要确保它已经有新的值了,不然的话,第一次进来的时候就请求不到了,对不对,所以我们要保证它已经有了总数,并且数组的这个长度是大于等于,这个时候就表示嘛,我们这时候就肯定已经加载完了嘛,因为现有的数组程度已经超过了总数或等于总数了,意味着已经没有更多的可加载了,所以后面的就不用看了,就不用再去发送请求了,所以我们这里面有一个法。啊,就是有一个业务法,就这地方我们要暂停一下,就你不用再去写下了,已经够了,已经那么多已经全部加载完了,但是一旦没有的时候呢,怎么样呢,我们就开始在在我们的项目当中,根据我们的一些业务逻辑哈,首先这里面第一个我们根据。这里用户选中的这个标题的头尾。好,我们先。
05:01
动态的去设置什么,设置一个我们的顶部的点来啊,这里面有一个设置标题啊,让这里面更好的看清楚我们现在用户之前的选择的起点和终点城市。然后呢,这里面就是so loading,然后loading的好处什么?在于用户知道我们现在的业务是属于请求过程当中啊,能够方便我们后续的进行操作啊,这里面是个友好的用户提示,当然如果说有时候有些用户的网络比较慢,或者是网络状况不好的时候呢,导致加载时间过长,用户并不知道我们在加载,所以这时候呢,他会进行一个以为我们在呃,网络卡了或系统崩溃了,会非常不好的一种用户体验,所以一般我们在这种常列表加载的时候呢,我们会有一个获取中。啊,让用户知道我们现在在帮你获取数据啊,还没得到结果啊,所以一个友好的loading的解释,往下地方呢,就是真正的发挥请求了,发局呢,我们有三个核心的参数,一个呢就起点城市,一个是到达城市,还有一个就是我们的当前页码。然后呢,再有了结果之后呢,这里面就是肯定方隐藏我们刚才的这个显示的loading。
06:06
啊,然后呢,对于数据进行处理啊,但是这里面呢,就是第一个就是。设置总数,然后呢,每一次的设置总数之后呢,我们会做什么事情呢?在这个列表当中啊,就回到了我们刚才的这个列表的请求开始过程当中,我们根据总数来判断现在的数据的程度是否已经达到了总的数量,如果达到了肯定就没有更多的了,就不需再去请求了啊,所以这个总数的设置是很重要的。接下来呢,我们可以什么,我们会根据我们实际情况得到了这个数组之后呢,我们有可能它的结构并不符合我们要显示的内容,比如说啊,在我的这个站点当中,我这里明显要显示是一个数组。他,但是我这里只需要对这请求得到的值进行一定处理,因为它可能返回是个字符串啊,所要对它进行处理,以及票价还是啊,当初我们在后台添加的票价是以分为单位,但是我们显示给客户看的时候呢,可能我们就进行一定的处理,所以说在得到了数据之后,我们可能不一定能马上用,我们需要通过这样子的一些数据的再次处理。
07:13
进行调整。然后呢,在最终的时候,我们怎么样呢?我们来停止,当这个停止下拉刷新是用来告诉用户,那如果有一下之后啊,哦,这个下拉下刷新的时候,我们要告诉你已经请求缓好了,那你就停止去下拉刷新的动画啊,就会上。然后接下来就什么,就是修改状态值。修改状态值地方,这有个特别注意的,就是页码加引。以便。下一次请求get list的时候。实现分裂。查询啊,就是我们当前页码已经查询好了结果之后,在最终的时候,我们单只要设置list,我们还有什么还要把页码提升,这样的话,在下次执行get list的地地方的时候,它会怎么样,它会自动的去请求下一页的内容,而不是当前页内容啊,就是我们实现。
08:11
分页加载是个很重要的一步,这里面一定要是当前的数量加一。啊,这是我们最核心的一个get list。这个数组的一个场景,OK,然后呢,这里面我们有两个很重要的,一个钩子函数,一个什么就是。在页面。下拉的时候。直行刷新。了解什么。就是在。在页面滚动到底部的时候实现啊,这两个钩子都是吗?都是我们微信小程序原生提供的生命周期的钩子,对应的场景是什么?就是在第一个刷新。啊,或者是我滚动到底部看到吗?同学们在不断的加载内容啊,对应的这两个时间啊,这两个时间呢,我们做的事情稍微有一点点的区别,下拉刷新其实在于我们很多业务需求当中都等于一切重来,而一切重来我们做过事情什么,我们要把参数性重置,就原来的总数,原来的页码以及原来的数组,我们都要重置到一开始的状态。
09:16
比如说这里面啊,我们刷新之后,一切是新的。但是呢,在我们的触底时,各位,我们应该什么是继续请求?因为我们刚才的业务当中,我们在请求到了结果之后,我们是页码加一了,所以我们不用再担心页码的这个增加的问题,我们直接去再请求就好了,所以这里面我们一般会在底部的时候去执行一个请求啊,当没有的时候会提示没有更多了,所在页面触底的时候,我们会怎么样,直接发送请求就好了。这是我们实现了么?实现业务当中很重要的一环,就是在这里面触底,以及什么下拉刷新啊,其中同们一定要记住一点,下拉刷新一定要在这个位置进行配置,就是在我们的配置文件中配置有这个啊,Animal put flash开为错的情况之下,它才能去。
10:08
实现啊,让这个生命周期。进行执行,不然的话它是不执行的,因为这个值默认指示嘛,是等于false OK,这是一个需要注意的点,然后呢,那么我们回到我们日期处理的一个地方啊,日期处理的地方呢,我回到看我们页面呢,我的顶部当中啊,需要有一个啊当前的日期,以及一个前一天后一天对应执行是个啊pre和个NEXT2个的函数的操作,而这两个函数当中我做了什么事情呢?首先我们看一下在我这个onload的地方啊,Onload地方我们就是get list了哈,之后我们做事情,Predict和after date,我们做事情我们都要做什么情啊,我们等点击点击下一页,其实我们也是要重新加载内容,只是得到是另外一天的这个航航线的信息。但是这里面呢,我们要注注意一个点,首先这里面就是进行。
11:03
Sh dead JA。提供的什么提供的方法。来。对于。日期进行调整。啊,这里面呢,啊,这个这个subtra这个是什么?就是实现简易天易。啊,就是我们在。这里点击前一天的时候啊,可以看到日期减一的。OK,然后这里面呢,再把数据重置之后,页码及种数重置之后,我们再重新请求,因为可能上一天数跟这篇数据肯定是不一样的,那同理可得,在我们的next day的地方,我们也是什么也是去进行了填数的增加。然后呢,再去重置数据。看到吧,然后这里面在。重新请求就会得到新的数组的内容,同学们,关键是在有一些核心数据,我们在请求之后一定要记得把它重置为初始状态。
12:05
啊,就是实现了我们上一天和下一天的操作,他会去重新请求内容啊,包括处理。啊,这是我们做长列表的业务当中。最常见的一个场景啊,把这下刷新,就会得到重新的内容,OK,同学们啊,以上的这些就是我们在。获取查询列表的时候,主要的一个业务流程。
我来说两句