vue中如何全局配置vee-validate?

How to configure vee-validate globally in vue?

我的问题是,有没有一种方法可以创建一个 .js 文件并说明所有 extend(s)?所以我们不需要在每次使用验证器时都进行扩展。

我只是问一下,因为每次我需要验证器时我的代码都会变得很长。我需要先扩展它才能使用。


我目前正在使用 vue & vuetifyvee-validate. The below codes are working fine reference.

模板

<ValidationObserver ref="observer" v-slot="{ validate, reset }">
    <ValidationProvider v-slot="{ errors }" name="Name" rules="required|max:10">
        <v-text-field v-model="user.name" :error-messages="errors" label="Name" type="text"></v-text-field>
    </ValidationProvider>
</ValidationObserver>

脚本

import { confirmed, required, email, max } from "vee-validate/dist/rules";
import { extend, ValidationObserver, ValidationProvider, setInteractionMode } from "vee-validate";

setInteractionMode("eager");

extend("required", {
  ...required,
  message: "{_field_} can not be empty",
});

extend("confirmed", {
  params: ["target"],
  validate(value, { target }) {
    return value === target;
  },
  message: "{_field_} does not match",
});

extend("max", {
  ...max,
  message: "{_field_} may not be greater than {length} characters",
});

extend("email", {
  ...email,
  message: "Email must be valid",
});

是的,您可以在一个文件中声明所有配置,然后将其导入您的 main.js。所以,你有

// validationConfig.js

import { confirmed, required, email, max } from "vee-validate/dist/rules";

extend()
extend()
//etc

主要内容:

// main.js

import path/to/validationConfig

我认为你可以使用 mixins (vuejs 2, vuejs 3)。混合对象可以包含任何组件选项。您还可以全局应用混合。