第三方库 mitt
ValidateForm.vue
<template>
<form class="validata-input-container" >
<slot></slot>
<div class="submit-area" >
<slot name="submit">
<button @click.prevent="submitForm" type="submit" class="btn btn-primary me-md-2">提交</button>
<button @click.prevent="clearInput" type="submit" class="btn btn-primary">重置</button>
</slot>
</div>
</form>
</template>
<script lang="ts">
import {
defineComponent, onUnmounted } from 'vue'
import mitt from 'mitt'
// 监听器
type validateFun = () => boolean
export const emitter = mitt()
export default defineComponent({
emits: ['form-submit'],
setup (props, context) {
let funArr: validateFun[] = []
const submitForm = () => {
const result = funArr.map(func => func