Vue使用vant實(shí)現(xiàn)日期選擇器功能
前言
在當(dāng)今前端開(kāi)發(fā)的領(lǐng)域中,Vue 框架因其高效和靈活的特性備受開(kāi)發(fā)者青睞。而 Vant 是一個(gè)輕量的移動(dòng)端組件庫(kù),為 ???????Vue 應(yīng)用的開(kāi)發(fā)提供了豐富且便捷的功能組件。在眾多的組件應(yīng)用中,日期選擇器又是一個(gè)常見(jiàn)且重要的需求。
本文將就如何在 Vue 框架中通過(guò) Vant 來(lái)實(shí)現(xiàn)日期選擇器的使用。
一、實(shí)現(xiàn)的效果

二、實(shí)現(xiàn)方案
可參考vant官網(wǎng)。
注:使用前要注意項(xiàng)目是 Vue2 還是 Vue3 ,所用到的Vant版本是不一樣的!
由于我的項(xiàng)目是Vue2的,所以本文用的Vant版本是Vant2。

- 在現(xiàn)有項(xiàng)目中使用
Vant時(shí),可以通過(guò)npm或yarn進(jìn)行安裝:
// Vue 3 項(xiàng)目,安裝最新版 Vant: npm i vant -S // Vue 2 項(xiàng)目,安裝 Vant 2: npm i vant@latest-v2 -S
- 我這邊的項(xiàng)目比較小,暫時(shí)用到幾個(gè)組件,所以用了按需引入的方式:
- 首先在
src文件下新建plugins文件,里面新建vant.js,如下圖:

import Vue from 'vue'
import {List, Uploader, Toast, Popup, DatetimePicker} from 'vant'
const uses = [List, Uploader, Toast, Popup, DatetimePicker]
uses.forEach(use => {
Vue.use(use)
})
- 然后在
main.js中引入此文件,如下圖:

完成這兩步操作之后,后續(xù)在頁(yè)面里就能夠正常加以使用了。
- 在使用日期選擇器的時(shí)候,結(jié)合了彈出層一起使用:
用彈出層將日期選擇器包起來(lái)。
彈出層設(shè)置了 底部彈出、圓角彈窗、40%的高度,這些屬性都可以根據(jù)自己項(xiàng)目實(shí)際情況進(jìn)行調(diào)整.

<van-popup v-model="show" position="bottom" round :style="{ height: '40%' }">
<van-datetime-picker
v-model="currentDate"
type="date"
title="請(qǐng)選擇日期"
:formatter="formatter"
@change="change"
@confirm="confirm"
@cancel="cancel"
safe-area-inset-bottom
/>
</van-popup>
DatetimePicker通過(guò)type屬性來(lái)定義需要選擇的時(shí)間類(lèi)型,type為date表示選擇年月日。在默認(rèn)的日期選擇器中,數(shù)字的后面是不帶“年月日”這幾個(gè)字的:

如果想要實(shí)現(xiàn)效果圖中帶“年月日”字樣的,則需要加上formatter屬性即可:
formatter(type, val) {
if (type === 'year') {
return val + '年';
}
if (type === 'month') {
return val + '月';
}
if (type === 'day') {
return val + '日';
}
return val;
},
- 如果想要日期選擇器彈出來(lái)的時(shí)候,默認(rèn)是當(dāng)天的日期:
// 在data中設(shè)置即可 currentDate: new Date(),
另外可以通過(guò)
min-date和max-date屬性可以確定可選的時(shí)間范圍,不過(guò)我這邊沒(méi)有用到此屬性,用的時(shí)候可參考文檔進(jìn)行設(shè)置即可。日期選擇器總共三個(gè)事件,需要哪個(gè)直接用即可:

change(val) {
console.log(val, 'val')
},
confirm() {
this.dateValue = this.timeFormat(this.currentDate);
console.log(this.dateValue, 'dateValue')
this.cancel();
},
cancel() {
this.show = false;
},
- 如果想在點(diǎn)擊日期選擇器的“完成”按鈕時(shí),讓時(shí)間顯示成
**** 年 * 月 * 日的格式,需要單獨(dú)寫(xiě)一個(gè)格式化時(shí)間的方法,在confirm事件中調(diào)用即可:
timeFormat(time) { // 時(shí)間格式化 ****年*月*日
let year = time.getFullYear();
let month = time.getMonth() + 1;
let day = time.getDate();
return year + '年' + month + '月' + day + '日';
},
這樣選擇完時(shí)間后,顯示出來(lái)的就是下圖這種:

大功告成!
三、總結(jié)
Vant 的使用方法極為簡(jiǎn)便,所需代碼量極少,其文檔中的 API 也十分詳盡,特別適合在 Vue 項(xiàng)目的移動(dòng)端加以運(yùn)用。
以上就是Vue使用vant實(shí)現(xiàn)日期選擇器功能的詳細(xì)內(nèi)容,更多關(guān)于Vue vant日期選擇器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 關(guān)于vant的時(shí)間選擇器使用方式
- vant4 封裝日期段選擇器的實(shí)現(xiàn)
- Vue配合Vant使用時(shí)area省市區(qū)選擇器的使用方式
- Vant picker選擇器設(shè)置默認(rèn)值導(dǎo)致選擇器失效的解決
- Vant?Weapp組件picker選擇器初始默認(rèn)選中問(wèn)題
- vant中的picker選擇器自定義選項(xiàng)內(nèi)容
- 基于Vant UI框架實(shí)現(xiàn)時(shí)間段選擇器
- Vue 用Vant實(shí)現(xiàn)時(shí)間選擇器的示例代碼
- vant實(shí)現(xiàn)自定義日期時(shí)間選擇器(年月日時(shí)分秒)
相關(guān)文章
vite打包出現(xiàn)?"default"?is?not?exported?by?"
這篇文章主要給大家介紹了關(guān)于vite打包出現(xiàn)?"default"?is?not?exported?by?"node_modules/...問(wèn)題的解決辦法,文中通過(guò)代碼將解決的辦法介紹的非常詳細(xì),對(duì)同樣遇到這個(gè)問(wèn)題的朋友具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-06-06
淺析vue-router jquery和params傳參(接收參數(shù))$router $route的區(qū)別
今天做項(xiàng)目時(shí)踩到了vue-router傳參的坑(jquery和params),所以決定總結(jié)一下二者的區(qū)別。感興趣的朋友跟隨腳本之家小編一起看看吧2018-08-08
Vue Element 分組+多選+可搜索Select選擇器實(shí)現(xiàn)示例
這篇文章主要介紹了Vue Element 分組+多選+可搜索Select選擇器實(shí)現(xiàn)示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Vue中通過(guò)vue-router實(shí)現(xiàn)命名視圖的問(wèn)題
這篇文章主要介紹了在Vue中通過(guò)vue-router實(shí)現(xiàn)命名視圖,本文給大家提到了vue-router的原理解析,給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
vue3?element?plus按需引入最優(yōu)雅的用法實(shí)例
這篇文章主要給大家介紹了關(guān)于vue3?element?plus按需引入最優(yōu)雅的用法,以及關(guān)于Element-plus按需引入的一些坑,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03
vue2如何使用simple-keyboard軟鍵盤(pán)有中文(拼音)
這篇文章主要介紹了vue2如何使用simple-keyboard軟鍵盤(pán)有中文(拼音),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
在vue-cli3.0 中使用預(yù)處理器 (Sass/Less/Stylus) 配置全局變量操作
這篇文章主要介紹了在vue-cli3.0 中使用預(yù)處理器 (Sass/Less/Stylus) 配置全局變量操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08

