前言
官网 https://vant-contrib.gitee.io/vant/v2/#/zh-CN/
加载中
1 | Toast.loading({ |
Moment.js
Moment.js 是我用过的最好用的操作时间的工具库。它使得操作时间变得很简单。
1 | npm install moment --save |
引用
1 | import moment from 'moment' |
创建
1 | moment() // 当前时间 |
格式化
1 | moment(date).format('YYYY-MM-DD HH:mm:ss') |
转化成 Date 对象
1 | moment().toDate() |
获取/设置时间信息
1 | moment().second() //获得 秒 |
操作
1 | moment().add(7, 'days') // 之后的第7天。第2个参数还可以是 'months', 'years' 等。注意是复数。 |
查询
1 | // 早于 |
日历
1 | <div class="calendar_div"> |
注意
默认日历组件的最小日期是当天,这就导致了我们不能选择之前的日期,所以我们可以设置最小日期,让之前的日期能够选择
但是一定要注意最小日期设置的越小,组件打开的就越慢,一定要根据实际情况设置。
van-calendar
建议放在最外层的div内,放在别的地方如标题栏,在ios系统上会有问题。
顶部导航
1 | <van-nav-bar |
下拉刷新
1 | <van-pull-refresh v-model="is_refresh" @refresh="onRefresh"> |
下拉刷新与加载更多
1 | <van-pull-refresh v-model="is_refresh" @refresh="onRefresh"> |
List
List 组件通过 loading
和 finished
两个变量控制加载状态,当组件滚动到底部时,会触发 load
事件并将 loading
设置成 true
。此时可以发起异步操作并更新数据,数据更新完毕后,将 loading
设置成 false
即可。若数据已全部加载完毕,则直接将 finished
设置成 true
即可。
注意:
- 组件初始化时默认会自动调用
onLoadMore
方法,如果我们设置:immediate-check="false"
则初始化时不再自动调用onLoadMore
。- 如果我们设置
:immediate-check="false"
,当数据的条数较少,显示的数据比List的高度要低的时候,并不会触发onLoadMore
,因为没有出现滚动条,即使上拉也不会触发。:immediate-check="true"
这是默认的值,不建议改为false
,因为true
的时候组件会根据渲染数据的高度,自动调用0到多次onLoadMore
,不会因为数据太少而导致无法触发onLoadMore
的问题。is_finished
一定要在没有更多数据的时候再设置为true
,否则不再触发onLoadMore
,下拉刷新时一定要把is_finished
再设置为false
。- 注意添加
.van-list
的样式,否则没有滚动条。
注意一定要设置van-list
的高度,并且一定要超过100%,否则如果一页数据不足一屏就会出现加载更多失效。
1 | .van-list { |
折叠面板
1 | <van-collapse v-model="activeNames"> |