当前位置:首页 > VUE

vue 实现新增表单

2026-02-20 01:26:54VUE

实现新增表单的基本步骤

在Vue中实现新增表单功能,可以通过以下方式完成。假设使用Vue 3和Composition API。

模板部分

<template>
  <form @submit.prevent="handleSubmit">
    <div>
      <label for="name">名称:</label>
      <input id="name" v-model="formData.name" type="text" />
    </div>
    <div>
      <label for="email">邮箱:</label>
      <input id="email" v-model="formData.email" type="email" />
    </div>
    <button type="submit">提交</button>
  </form>
</template>

脚本部分

<script setup>
import { reactive } from 'vue'

const formData = reactive({
  name: '',
  email: ''
})

const handleSubmit = () => {
  console.log('提交数据:', formData)
  // 这里可以添加API调用或其他处理逻辑
  // 例如:axios.post('/api/users', formData)
}
</script>

表单验证的实现

使用Vuelidate进行表单验证可以提升用户体验。

vue 实现新增表单

安装Vuelidate:

npm install @vuelidate/core @vuelidate/validators

实现验证:

vue 实现新增表单

<script setup>
import { reactive } from 'vue'
import useVuelidate from '@vuelidate/core'
import { required, email } from '@vuelidate/validators'

const formData = reactive({
  name: '',
  email: ''
})

const rules = {
  name: { required },
  email: { required, email }
}

const v$ = useVuelidate(rules, formData)

const handleSubmit = async () => {
  const isValid = await v$.value.$validate()
  if (!isValid) return

  console.log('验证通过,提交数据:', formData)
}
</script>

表单重置功能

添加重置按钮可以方便用户重新填写表单。

<template>
  <form @submit.prevent="handleSubmit" @reset="handleReset">
    <!-- 表单字段 -->
    <button type="submit">提交</button>
    <button type="reset">重置</button>
  </form>
</template>

<script setup>
const handleReset = () => {
  formData.name = ''
  formData.email = ''
  v$.value.$reset()
}
</script>

表单加载状态

在提交表单时显示加载状态可以提升用户体验。

<script setup>
import { ref } from 'vue'

const isLoading = ref(false)

const handleSubmit = async () => {
  isLoading.value = true
  try {
    await axios.post('/api/users', formData)
    // 处理成功情况
  } catch (error) {
    // 处理错误
  } finally {
    isLoading.value = false
  }
}
</script>
<button type="submit" :disabled="isLoading">
  {{ isLoading ? '提交中...' : '提交' }}
</button>

表单成功/错误反馈

添加成功和错误提示可以让用户明确操作结果。

<script setup>
const isSuccess = ref(false)
const errorMessage = ref('')

const handleSubmit = async () => {
  try {
    await axios.post('/api/users', formData)
    isSuccess.value = true
    errorMessage.value = ''
  } catch (error) {
    isSuccess.value = false
    errorMessage.value = error.response?.data?.message || '提交失败'
  }
}
</script>
<template>
  <div v-if="isSuccess" class="success-message">
    提交成功!
  </div>
  <div v-if="errorMessage" class="error-message">
    {{ errorMessage }}
  </div>
</template>

标签: 表单vue
分享给朋友:

相关文章

vue实现前端分离

vue实现前端分离

Vue 实现前后端分离 前后端分离是一种架构模式,前端负责页面渲染和交互逻辑,后端提供数据接口。Vue.js 作为前端框架,非常适合实现前后端分离的开发模式。 核心实现步骤 创建 Vue 项目 使…

vue实现绑卡的原理

vue实现绑卡的原理

Vue 实现绑卡的原理 Vue 实现绑卡功能通常涉及前端表单处理、数据绑定、验证以及和后端 API 的交互。以下是实现绑卡功能的核心原理和步骤: 数据绑定与表单处理 Vue 通过 v-model…

vue实现分类

vue实现分类

Vue实现分类功能的方法 使用v-for和计算属性 通过计算属性对数据进行分类处理,结合v-for渲染分类后的列表。示例代码: <template> <div>…

django vue实现

django vue实现

Django与Vue.js整合实现方案 Django作为后端框架与Vue.js作为前端框架的整合,可以通过以下方式实现: 分离式开发 前后端完全分离,Django仅提供API接口,Vue.js通过…

vue 实现挂载

vue 实现挂载

Vue 实现挂载的基本方法 在 Vue 中,挂载是将 Vue 实例与 DOM 元素关联的过程。通过挂载,Vue 可以管理 DOM 并实现数据绑定和响应式更新。 创建 Vue 实例并挂载 const…

vue 实现单选

vue 实现单选

使用 v-model 绑定单选值 在 Vue 中,可以通过 v-model 绑定单选按钮的值。定义一个响应式数据(如 selectedOption),并将其与单选按钮的 value 属性关联。…