前言
官网 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"> |