欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue動態(tài)綁定組件子父組件多表單驗證功能的實現(xiàn)代碼

 更新時間:2018年05月14日 10:55:06   作者:會飛的閏土  
這篇文章主要介紹了vue動態(tài)綁定組件子父組件多表單驗證功能的實現(xiàn)代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧

前端項目中經(jīng)常會下拉或者選項卡,如果通過if,else或者switch去判斷加載的話會產(chǎn)生大量冗余代碼和變量定義,而且都寫在一起后人很難維護。

Vue核心在于組件,如果有內(nèi)容通過選項卡或者下拉框切換用動態(tài)加載子組件最好不過。

如圖: selects文件夾中,index只負(fù)責(zé)公共數(shù)據(jù)(當(dāng)然公共數(shù)據(jù)也可以寫在其他文件,只留一個入口文件),而comp文件夾中的幾個組件則通過動態(tài)加載。

動態(tài)加載子組件:component

// 給下拉框綁定下拉列表的索引
<el-select v-model="value" placeholder="請選擇" style="float:left" @change="selectNum(value)">
     <el-option
         v-for="item in options"
         :key="item.value"
         :label="item.label"
         :value="item.value">
     </el-option>
</el-select>

引入組件后放到一個數(shù)組內(nèi),通過控制對應(yīng)的索引達到加載組件的目的


// 加載組件:每次下拉框監(jiān)聽則給changValue新賦值,如果下拉options的value從0開始則綁定組件時不用-1
<component :is="componentName[changValue - 1]" ref="subjectChild" @isSubmit="getSubmit"></component>

子父組件表單一起驗證:

按鈕放在父組件內(nèi):

子組件:自定義驗證規(guī)則

data(){
  const num = (rule, value, callback) => {
    let num = /^\d+$/
    if(!value){
      return callback(new Error('數(shù)量不能為空'))
    }else if(!num.test(value)){
      return callback(new Error('數(shù)量必須為數(shù)字'))
    }else{
      callback()
    }
  }
  const price = (rule, value, callback) => {
    let num2 = /^\d+$/
    if(!value){
      return callback(new Error('單價不能為空'))
    }else if(!num2.test(value)){
      return callback(new Error('單價必須為數(shù)字'))
    }else{
      callback()
    }
  }
  return{
    // 驗證
    apple:{
      num: '',
      price: '',
    },
    reg:{
      num: [
        { validator: num, trigger: 'blur' }
      ],
      price: [
        { validator: price, trigger: 'blur' }
      ]
    }
  }
// 驗證
  submitForm(){
    this.$refs.apple.validate((valid) => {
      if(valid){
        this.$emit('isSubmit',["subject",true])
      }else{
        this.$emit('isSubmit',["subject",false])
        return false
      }
    })
  }

父組件:

 // 獲取子組件狀態(tài)
  getSubmit(type){
    this.isRule = type[1]
  },
// 公共數(shù)據(jù)驗證
  submitForm2(){
    // 如果選中了子組件
    if(this.changValue){
      this.$refs.subjectChild.submitForm()
    }
    let _this = this
    let p1 = new Promise((resolve, reject) => {
      _this.$refs.ruleForm.validate((valid) => {
        if(valid){
          resolve()
        }
      })
    })
    if(_this.isRule){
      Promise.all([p1]).then(() => {
        console.log('正確')
      })
      .catch(() => {
        console.log('錯誤')
      })
    }else{
      console.log('錯誤')
    }
  },

總結(jié)

以上所述是小編給大家介紹的vue動態(tài)綁定組件子父組件多表單驗證功能的實現(xiàn)代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • vue axios數(shù)據(jù)請求get、post方法及實例詳解

    vue axios數(shù)據(jù)請求get、post方法及實例詳解

    axios是一個基于Promise,同時支持瀏覽器端和Node.js的HTTP庫,常用于Ajax請求。這篇文章主要介紹了vue axios數(shù)據(jù)請求get、post方法的使用 ,需要的朋友可以參考下
    2018-09-09
  • vue如何在線預(yù)覽各類型文件

    vue如何在線預(yù)覽各類型文件

    這篇文章主要介紹了vue如何在線預(yù)覽各類型文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 詳解Element-UI中上傳的文件前端處理

    詳解Element-UI中上傳的文件前端處理

    這篇文章主要介紹了詳解Element-UI中上傳的文件前端處理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • vue3關(guān)于時間顯示格式化的問題

    vue3關(guān)于時間顯示格式化的問題

    這篇文章主要介紹了vue3關(guān)于時間顯示格式化的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue使用mpegts.js的詳細步驟記錄

    vue使用mpegts.js的詳細步驟記錄

    MPEGTS.js是一個輕量級的JavaScript庫,用于處理MPEG-TS流,這篇文章主要給大家介紹了關(guān)于vue使用mpegts.js的詳細步驟記錄,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-04-04
  • 使用vite兼容低端瀏覽器配置

    使用vite兼容低端瀏覽器配置

    這篇文章主要介紹了使用vite兼容低端瀏覽器配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Vue點擊在彈窗外部實現(xiàn)一鍵關(guān)閉的示例代碼

    Vue點擊在彈窗外部實現(xiàn)一鍵關(guān)閉的示例代碼

    在Vue應(yīng)用中,彈窗是一個常見的交互元素,有時我們可能希望用戶點擊彈窗外部時,彈窗能夠自動關(guān)閉,本文主要介紹了Vue點擊在彈窗外部實現(xiàn)一鍵關(guān)閉的示例代碼,感興趣的可以了解一下
    2024-06-06
  • 1分鐘Vue實現(xiàn)右鍵菜單

    1分鐘Vue實現(xiàn)右鍵菜單

    今天給大家分享的是,如何在最短的時候內(nèi)實現(xiàn)右鍵菜單。高效實現(xiàn)需求,避免重復(fù)造輪子。感興趣的可以了解一下
    2021-10-10
  • vue實現(xiàn)zip文件下載

    vue實現(xiàn)zip文件下載

    這篇文章主要為大家詳細介紹了vue實現(xiàn)zip文件下載,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Element-Plus?el-col、el-row快速布局及使用方法

    Element-Plus?el-col、el-row快速布局及使用方法

    這篇文章主要介紹了Element-Plus?el-col、el-row快速布局及使用方法,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12

最新評論