如何在Vue Composition API中使用ref验证表单

时间:2020-08-06 00:37:34

标签: vue.js vuetify.js vuejs3 vue-composition-api

我使用Options API验证了我的表单,如下所示:

模板:

<v-form ref="form" v-model="valid" lazy-validation @submit.prevent>
...

脚本:

methods: {
  validate() {
    this.$refs.form.validate();
    ...
  }
}

现在,有了新的Composition API,如何在表单上调用validate()

2 个答案:

答案 0 :(得分:3)

首先,通过声明ref并使用与模板(1️⃣)相同的名称来设置template ref。然后,从您的validate(2️⃣)返回setup()方法:

<template>
  <v-form ref="myForm">...</v-form>
</template>

<script>
import { ref } from '@vue/composition-api'

export default {
  setup() {
    const myForm = ref(null)  // 1️⃣

    return {
      myForm, // 1️⃣

      validate() { // 2️⃣
        myForm.value.validate()
      },
    }
  }
}
</script>

Edit Binding methods with Vue Composition API

答案 1 :(得分:1)

您可以通过context函数的第二个参数setup访问该引用:

<v-form ref="form" v-model="valid" lazy-validation @submit.prevent="validate">

脚本:

export default {
  setup(props,context) {
    functions validate() { 
       context.refs.form.validate()
      }

    return {
       validate
    }
  }
}

或在参数中破坏该上下文:


export default {
  setup(props,{refs}) {
    functions validate() { 
      refs.form.validate()
      }

    return {
       validate
    }
  }
}