Vue.js如何優雅的進行form validation?

1. 所有validation rules是被集中管理,而不是每個文件自己一種,導致驗證規則冗餘。

2. 能夠進行remote validate。

3. 不用JQuery。

現有的插件vuejs/vue-validator · GitHub只能實現普通驗證,但如何解決1,因為vue-validator沒有把校驗規則給抽象出來,沒辦法,現在只能自己代碼上再抽出一層rules來管理。remote validation只能手寫藉助Jquery ajax來驗證。


這個現在我可以回答了。

我覺得 vue-validator 太冗餘了。所以自己寫了個項目用的插件 va.js,它實現了

  1. 集中式的管理 校驗規則 和 報錯模板。

  2. 報錯時機可選

  3. 校驗正確後的數據,已經打包成對象,可以直接用

  4. 允許各個頁面對規則進行覆蓋,對報錯信息進行自定義修改,以及允許ajax獲取數據後,再對規則進行補充

  5. 按順序來校驗報錯

我寫了一篇博文來記載 va.js的寫作歷程。

va.js——Vue 表單驗證插件的寫作過程

我個人觀點。表單驗證的是一種高度定製化的東東。所以網上用的插件,都會有不盡人意的感覺,因為要麼冗餘,要麼不夠。因此,我分享了思路和源碼。真的想寫的話,借鑒思路自己寫吧。


這是模型層,或者說 store 應該做的事。不論視圖層用什麼庫,vue 也好,react 也好,都應該由 store 這一塊負責數據的驗證。通過或者不通過,也由 store 向 form 傳遞。

想想這些情況:

一個輸入在多個地方顯示,都要顯示驗證結果;

驗證過程依賴其他欄位;

驗證依賴非同步請求;

由此可見視圖層並不是驗證表單的適當場所。


egoist/vue-final-form


這個問題摸索一年了快,動態表單驗證依然很蛋疼。

大概會

手寫指令和方法,計算屬性validate

async-validator

在vuex那層validate

讓後端來validate

vue-validate用著有些難過……


vee-validate http://github.com/logaretm/vee-validate/ 好用


vue表單驗證組件 v-verify-plugin

verify

github:https://github.com/liuyinglong/verify
npm:https://www.npmjs.com/package/vue-verify-plugin

install

npm install vue-verify-plugin

use

  • html

&
&
&
&

Vue 中如何使用 MutationObserver 做批量處理?
有什麼UI組件庫可以兼容三大框架,vue,react,angular嗎?
在react 、 vue 、ng 這些框架火起來之前,是哪些框架比較火?它們現在怎麼樣了?
Vue、React和Angular 2.x,誰是2016年的主流?

TAG:Web開發 | 前端開發 | Vuejs |