当前位置:首页 > VUE

vue.js实现表单

2026-02-25 06:42:15VUE

Vue.js 表单实现方法

双向数据绑定

使用v-model指令实现表单元素与Vue实例数据的双向绑定,适用于输入框、复选框、单选按钮等元素。

<template>
  <input v-model="username" placeholder="用户名">
  <textarea v-model="description"></textarea>
</template>

<script>
export default {
  data() {
    return {
      username: '',
      description: ''
    }
  }
}
</script>

表单验证

通过计算属性或watch监听器实现基础验证,或使用VeeValidate等专用验证库。

<template>
  <input v-model="email" @blur="validateEmail">
  <span v-if="error">{{ error }}</span>
</template>

<script>
export default {
  data() {
    return {
      email: '',
      error: ''
    }
  },
  methods: {
    validateEmail() {
      const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
      this.error = re.test(this.email) ? '' : '邮箱格式不正确';
    }
  }
}
</script>

表单提交

使用@submit.prevent阻止默认提交行为,通过方法处理数据。

<template>
  <form @submit.prevent="handleSubmit">
    <!-- 表单内容 -->
    <button type="submit">提交</button>
  </form>
</template>

<script>
export default {
  methods: {
    handleSubmit() {
      if(this.validateForm()) {
        // 提交逻辑
      }
    }
  }
}
</script>

动态表单字段

通过v-for实现动态生成的表单字段,适用于需要增减表单项的场景。

<template>
  <div v-for="(item, index) in items" :key="index">
    <input v-model="item.value">
    <button @click="removeItem(index)">删除</button>
  </div>
  <button @click="addItem">添加字段</button>
</template>

<script>
export default {
  data() {
    return {
      items: [{ value: '' }]
    }
  },
  methods: {
    addItem() {
      this.items.push({ value: '' });
    },
    removeItem(index) {
      this.items.splice(index, 1);
    }
  }
}
</script>

表单组件封装

将表单控件封装为可复用的组件,通过v-model实现父子组件通信。

<!-- 子组件 CustomInput.vue -->
<template>
  <input 
    :value="modelValue"
    @input="$emit('update:modelValue', $event.target.value)"
  >
</template>

<script>
export default {
  props: ['modelValue'],
  emits: ['update:modelValue']
}
</script>

<!-- 父组件使用 -->
<template>
  <CustomInput v-model="inputValue" />
</template>

vue.js实现表单

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

相关文章

vue实现接口

vue实现接口

在 Vue 中实现接口请求 Vue 本身不直接提供 HTTP 请求功能,通常需要借助第三方库如 axios 或 fetch 来实现接口请求。以下是几种常见方法: 使用 axios 发送请求 安装 a…

vue实现曲线

vue实现曲线

Vue 实现曲线的方法 在 Vue 中实现曲线可以通过多种方式,包括使用 SVG、Canvas 或第三方库如 D3.js、ECharts 等。以下是几种常见的方法: 使用 SVG 绘制曲线 SVG…

vue实现拖动

vue实现拖动

Vue实现拖动的常用方法 在Vue中实现拖动功能通常需要结合HTML5的拖放API或第三方库。以下是几种常见实现方式: 使用HTML5原生拖放API HTML5提供了原生拖放API,可以通过dra…

vue实现视频

vue实现视频

Vue 实现视频播放的方法 在 Vue 项目中实现视频播放可以通过多种方式完成,以下是几种常见的方法: 使用 HTML5 的 <video> 标签 在 Vue 组件中直接使用 HT…

实现简单vue

实现简单vue

实现一个简单的 Vue.js 框架 Vue.js 的核心功能包括数据绑定、响应式系统和虚拟 DOM。以下是一个简化版的 Vue 实现,涵盖基本功能。 数据响应式系统 使用 Object.defin…

vue实现刷新

vue实现刷新

Vue 实现页面刷新的方法 在Vue中实现页面刷新可以通过多种方式,以下是几种常见的方法: 使用 window.location.reload() 通过调用浏览器的原生方法强制刷新当前页面:…