Как проверить форму с помощью ref в 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() в форме?


person Philipp Chapkovski    schedule 06.08.2020    source источник


Ответы (2)


Сначала настройте ссылку на шаблон, объявив ref с тем же именем как использовано в шаблоне (1️⃣). Затем верните метод validate из вашего setup() (2️⃣):

<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>

 Редактировать методы привязки с помощью Vue Composition API

person tony19    schedule 06.08.2020

Vue 2 + API композиции:

Вы можете получить доступ к этой ссылке через 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
    }
  }
}
person Boussadjra Brahim    schedule 06.08.2020