成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

vue驗(yàn)證中如何使用策略模式

lvzishen / 1063人閱讀

摘要:根據(jù)網(wǎng)上現(xiàn)有的資料改的適用的策略驗(yàn)證,如果還需要別的驗(yàn)證直接自己添加規(guī)則就行了。

根據(jù)網(wǎng)上現(xiàn)有的資料改的vue適用的策略驗(yàn)證,如果還需要別的驗(yàn)證直接自己添加規(guī)則就行了 。 上代碼
新建一個js文件

let strategys = {
    isNotEmpty: (value, errorMsg) => {
        if(value === ""){
            return errorMsg;
        }
    },
    minLength: (value, length, errorMsg) => {
        if(value.length < length){
            return errorMsg;
        }
    },
    mobileFormat: (value, errorMsg) => {
        if(!/(^1[3|5|8][0-9]{9}$)/.test(value)) {
            return errorMsg;
        }
    }
}

export var Validator = function () {
        this.cache = [];  // 保存效驗(yàn)規(guī)則
};
Validator.prototype.add = function(dom,rule,errorMsg) {
    var str = rule.split(":");
    this.cache.push(function(){
        // str 返回的是 minLength:6 
        var strategy = str.shift();
        str.unshift(dom); // value添加進(jìn)參數(shù)列表
        str.push(errorMsg);  // 把errorMsg添加進(jìn)參數(shù)列表
        return strategys[strategy].apply(dom,str);
    });
};
Validator.prototype.start = function () {
  for (var i = 0, validatorFunc; validatorFunc = this.cache[i++]; ) {
        var msg = validatorFunc()  // 開始效驗(yàn) 并取得效驗(yàn)后的返回信息
        if(msg) {
            return msg
        }
    }
};

將文件導(dǎo)入要使用的組件或者視圖中

import { Validator } from "./validate.js"

然后在你需要的地方導(dǎo)入就搞定了

methods: {
            submit_click() {
                let errorMsg = this.validateFunc();
                if (errorMsg) {
                    alert(errorMsg);
                    return false
                }
            },
            validateFunc() {
              let that = this;
                let validator = new Validator();
                validator.add(that.userName, "isNotEmpty", "用戶名不能為空");
                validator.add(that.password, "minLength:6", "密碼長度不能小于6位");
                validator.add(that.phoneNumber, "mobileFormat", "手機(jī)號碼格式不正確");

                var errorMsg = validator.start(); // 獲得效驗(yàn)結(jié)果
                return errorMsg; // 返回效驗(yàn)結(jié)果
            }
        }

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/81786.html

相關(guān)文章

  • JavaScript 設(shè)計(jì)模式系列 - 策略模式與動態(tài)表單驗(yàn)證

    摘要:策略模式又稱政策模式,其定義一系列的算法,把它們一個個封裝起來,并且使它們可以互相替換。的表單具有表單驗(yàn)證功能,用來校驗(yàn)用戶輸入的表單內(nèi)容。實(shí)際需求中表單驗(yàn)證項(xiàng)一般會比較復(fù)雜,所以需要給每個表單項(xiàng)增加自定義校驗(yàn)方法。 showImg(https://segmentfault.com/img/remote/1460000020135990); 策略模式 (Strategy Pattern...

    宋華 評論0 收藏0
  • 2019年7-8月份前端面試題

    摘要:站點(diǎn)接收到請求后,對請求進(jìn)行驗(yàn)證,并確認(rèn)是受害者的憑證,誤以為是無辜的受害者發(fā)送的請求。函數(shù)內(nèi)部語句返回的值,會成為方法回調(diào)函數(shù)的參數(shù)。 記錄我最近面試缺漏的知識點(diǎn) css 1.bootstrap如何實(shí)現(xiàn)手機(jī)PC端自適應(yīng) 媒體查詢 2.flex布局 父容器:(記得常用屬性) display:flex flex-direction: row | row-reverse | column ...

    shevy 評論0 收藏0
  • 5分鐘即可掌握的前端高效利器:JavaScript 策略模式

    摘要:策略模式由兩部分構(gòu)成一部分是封裝不同策略的策略組,另一部分是。策略模式的典型應(yīng)用場景是表單校驗(yàn)中,對于校驗(yàn)規(guī)則的封裝。然而圖像的壓縮及上傳錯誤處理等部分是公用的。遂考慮使用策略模式封裝。 淺談 JavaScript 中策略模式的使用: 什么是設(shè)計(jì)模式 什么是策略模式 策略模式在 JavaScript 中的應(yīng)用(使用策略模式封裝百度AI識別調(diào)用) 策略模式在 Vue 組件封裝中的應(yīng)用(...

    BlackFlagBin 評論0 收藏0
  • 前端資源收集整理

    摘要:工作原因,最近一年斷斷續(xù)續(xù)寫了一點(diǎn)前端代碼,收集整理了一些資料,和大家共享。 工作原因,最近一年斷斷續(xù)續(xù)寫了一點(diǎn)前端代碼,收集整理了一些資料,和大家共享。 Github版本:Front-End Resource Collection 前端相關(guān)資源匯總 學(xué)習(xí)指導(dǎo) 精華文章 Web前端的路該怎么走?:文章超長,但是干貨超級多,值得反復(fù)精讀! 聽說2017你想寫前端?:適合于已經(jīng)度過了小白階...

    awesome23 評論0 收藏0
  • 前端資源收集整理

    摘要:工作原因,最近一年斷斷續(xù)續(xù)寫了一點(diǎn)前端代碼,收集整理了一些資料,和大家共享。 工作原因,最近一年斷斷續(xù)續(xù)寫了一點(diǎn)前端代碼,收集整理了一些資料,和大家共享。 Github版本:Front-End Resource Collection 前端相關(guān)資源匯總 學(xué)習(xí)指導(dǎo) 精華文章 Web前端的路該怎么走?:文章超長,但是干貨超級多,值得反復(fù)精讀! 聽說2017你想寫前端?:適合于已經(jīng)度過了小白階...

    antyiwei 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<