VeeValidate 教程

本教程主要講解 VeeValidate 的用法廓鞠,希望通過寫這篇文章可以對自己和讀者帶來方便

創(chuàng)建項目

這里直接使用了 vue 的腳手架 vue cli 創(chuàng)建項目撇吞,具體方法參考官網(wǎng)vue cli 創(chuàng)建項目

基礎知識

基本用法

注冊 ValidationProvider

有兩種注冊方法:第一種可以是直接在組件中使用 ValidationProvider 組件(推薦用法)

import { ValidationProvider } from 'vee-validate';

export default {
  components: {
    ValidationProvider
  }
};

第二種方法是直接進行全局注冊,這樣單個組件中就不需要重復注冊栈幸,當然實際業(yè)務中應該不會經(jīng)常用到表格校驗汤求。

import { ValidationProvider } from 'vee-validate';

Vue.component('ValidationProvider', ValidationProvider);

在組件模版中使用 ValidationProvider

<ValidationProvider v-slot="{ errors }">
  <input v-model="value" type="text">
  <span>{{ errors[0] }}</span>
</ValidationProvider>
  • ValidationProvider:將 input 標簽和 span 標簽里面的內(nèi)容包裹起來
  • v-model:ValidationProvider 通過該屬性可以搜索到需要驗證的值
  • v-slot:ValidationProvider 通過該屬性將信息傳遞出來挨稿。

增加規(guī)則

import { extend } from 'vee-validate'

extend('minmax', {
    validate (value, { min, max }) {
        return value.length >= min && value.length <= max;
    },
    params: ['min', 'max']
})
  • extend:可以定義規(guī)則的名稱(minmax)和 validate 函數(shù), params 屬性,如果有需要可以定義多個規(guī)則
  • validate: 可以定義具體的驗證方法鸟妙,其中 value 對應表格中輸入的值焦人,{min,max} 對應 params 數(shù)組中的取值
  • params: 定義 validate 函數(shù)中使用到的參數(shù)
<ValidationProvider rules="minmax:2,8" v-slot="{ errors }">
      <input v-model="email"  name="test" type="text" />
      <span>{{ errors[0] }}</span>
 </ValidationProvider>

  • rules 參數(shù)直接使用前面定義的 minmax 規(guī)則,后面還傳入了兩個參數(shù)圆仔,2和8垃瞧;如果使用了多個規(guī)則,規(guī)則名稱之間可以使用“|”符號隔開


    錯誤狀態(tài)1.png
錯誤狀態(tài)2.png
正確狀態(tài).png
  • 輸入框的值不符合定義的規(guī)則坪郭,右側會出現(xiàn)提示信息个从。如圖所示,當輸入框的內(nèi)容長度小于2或者大于8的時候,右側出現(xiàn)提示信息“test is not valid”嗦锐。其中“test”是 input 輸入框中定義的 name
  • 輸入框的值符合定義的規(guī)則嫌松,右側沒有提示信息。如圖所示奕污,當輸入框的內(nèi)容長度大于等于2并且小于等于8的時候萎羔,右側沒有出現(xiàn)提示信息。

增加信息
前面長度不符合規(guī)則的默認提示顯然不夠友好碳默。為了自定義提示信息贾陷,可以在 extend 函數(shù)中增加 message 屬性

import { extend } from 'vee-validate'

extend('minmax', {
    validate (value, { min, max }) {
        return value.length >= min && value.length <= max;
    },
    params: ['min', 'max'],
    message:'The length of {_field_} must be between {min} and {max}'
})
  • message: 定義不符合規(guī)則的情況下,出現(xiàn)的提示信息嘱根。其中 {_field_}對應ValidationProvider 中使用的 name髓废,如果沒有定義這個 name,會自動去找 html 中的 name 或者 id 屬性该抒,前面的報錯信息正是使用到了 input 中 name 的屬性值 test慌洪;另外,{min} 和 {max} 對應 params 屬性的值凑保。


    截屏2020-02-26上午12.34.06.png
  • 輸入框的內(nèi)容不符合規(guī)則要求的時候冈爹,會出現(xiàn)提示信息: The length of test must be between 2 and 8

可用的規(guī)則

除了自定義規(guī)則,VeeValidate 也自帶了很多規(guī)則欧引,詳細內(nèi)容可參考官方文檔的詳細規(guī)則频伤,下面例舉其中一個規(guī)則的使用方法

import { extend } from 'vee-validate'
import { min } from 'vee-validate/dist/rules'

extend('min',min)
  • 通過 extend 函數(shù)引用自帶規(guī)則 min
 <ValidationProvider name="email" rules="min:4" v-slot="{ errors,classes }">
      <div class="control" :class="classes">
        <input v-model="email" name="test" type="text" />
        <span>{{ errors[0] }}</span>
      </div>
</ValidationProvider>
  • rules: ValidationProvider 的 rules 屬性就可以直接設置輸入的值要大于等于4
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市维咸,隨后出現(xiàn)的幾起案子剂买,更是在濱河造成了極大的恐慌,老刑警劉巖癌蓖,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異婚肆,居然都是意外死亡租副,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門较性,熙熙樓的掌柜王于貴愁眉苦臉地迎上來用僧,“玉大人,你說我怎么就攤上這事赞咙≡鹧” “怎么了?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵攀操,是天一觀的道長院仿。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么歹垫? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任剥汤,我火速辦了婚禮,結果婚禮上排惨,老公的妹妹穿的比我還像新娘吭敢。我一直安慰自己,他們只是感情好暮芭,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布鹿驼。 她就那樣靜靜地躺著,像睡著了一般辕宏。 火紅的嫁衣襯著肌膚如雪蠢沿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天匾效,我揣著相機與錄音舷蟀,去河邊找鬼。 笑死面哼,一個胖子當著我的面吹牛野宜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播魔策,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼匈子,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了闯袒?” 一聲冷哼從身側響起虎敦,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎政敢,沒想到半個月后其徙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡喷户,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年唾那,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片褪尝。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡闹获,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出河哑,到底是詐尸還是另有隱情避诽,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布璃谨,位于F島的核電站沙庐,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜轨功,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一旭斥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧古涧,春花似錦垂券、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至柒昏,卻和暖如春凳宙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背职祷。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工氏涩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人有梆。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓是尖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親泥耀。 傳聞我的和親對象是個殘疾皇子饺汹,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容