当前位置:首页 > VUE

vue实现修改信息页面

2026-02-20 19:12:28VUE

Vue 实现修改信息页面

数据绑定与表单结构

使用 v-model 实现表单数据的双向绑定,确保表单字段与 Vue 实例中的数据属性同步。例如:

<template>
  <form @submit.prevent="handleSubmit">
    <input v-model="formData.name" placeholder="姓名" />
    <input v-model="formData.email" placeholder="邮箱" />
    <button type="submit">保存</button>
  </form>
</template>

初始化表单数据

datasetup 中定义表单的初始数据,可通过接口获取原始信息填充:

data() {
  return {
    formData: {
      name: '',
      email: ''
    }
  }
}

加载原始数据

createdmounted 生命周期中调用接口获取原始数据:

async mounted() {
  const res = await axios.get('/api/user-info');
  this.formData = res.data;
}

表单提交逻辑

定义提交方法,验证数据后调用更新接口:

methods: {
  async handleSubmit() {
    try {
      await axios.put('/api/update-info', this.formData);
      alert('修改成功');
    } catch (error) {
      console.error(error);
    }
  }
}

表单验证

使用 Vuelidate 或手动验证确保数据合法性:

import { required, email } from 'vuelidate/lib/validators';

validations: {
  formData: {
    name: { required },
    email: { required, email }
  }
}

反馈与跳转

操作成功后提供反馈并跳转页面:

vue实现修改信息页面

async handleSubmit() {
  if (this.$v.$invalid) return;
  await axios.put('/api/update-info', this.formData);
  this.$router.push('/profile'); // 跳转到个人主页
}

完整组件示例

<template>
  <form @submit.prevent="handleSubmit">
    <input v-model="formData.name" placeholder="姓名" />
    <span v-if="$v.formData.name.$error">姓名必填</span>

    <input v-model="formData.email" placeholder="邮箱" />
    <span v-if="$v.formData.email.$error">邮箱格式错误</span>

    <button type="submit">保存</button>
  </form>
</template>

<script>
import { required, email } from 'vuelidate/lib/validators';

export default {
  data() {
    return {
      formData: { name: '', email: '' }
    }
  },
  validations: {
    formData: {
      name: { required },
      email: { required, email }
    }
  },
  async mounted() {
    const res = await axios.get('/api/user-info');
    this.formData = res.data;
  },
  methods: {
    async handleSubmit() {
      this.$v.$touch();
      if (this.$v.$invalid) return;

      await axios.put('/api/update-info', this.formData);
      this.$router.push('/profile');
    }
  }
}
</script>

标签: 页面信息
分享给朋友:

相关文章

vue实现结算页面

vue实现结算页面

Vue 实现结算页面的方法 数据绑定与表单验证 使用 Vue 的 v-model 实现表单数据的双向绑定,确保用户输入的数据能够实时更新到 Vue 实例中。例如,绑定收货地址、支付方式等表单字段。…

vue实现转页面

vue实现转页面

Vue 实现页面跳转的方法 在 Vue 中实现页面跳转可以通过多种方式,主要分为编程式导航和声明式导航两种。以下是具体实现方法: 使用 <router-link> 声明式导航 <r…

vue实现车次信息

vue实现车次信息

实现车次信息展示功能 在Vue中实现车次信息展示功能,可以通过以下方式完成。这里假设车次信息包括车次号、出发站、到达站、出发时间、到达时间等字段。 数据结构设计 车次信息通常采用数组形式存储,每个车…

vue实现页面切换

vue实现页面切换

Vue 实现页面切换的方法 Vue 中实现页面切换通常使用 Vue Router,这是 Vue.js 官方的路由管理器。以下是几种常见的实现方式: 使用 Vue Router 的基本配置 安装 Vu…

vue实现的页面

vue实现的页面

以下是基于 Vue.js 实现页面的核心方法和关键步骤,结合现代开发实践整理而成: 环境配置与项目初始化 使用 Vue CLI 或 Vite 创建项目,推荐选择 Vue 3 组合式 API 风格:…

vue 实现页面跳转

vue 实现页面跳转

Vue 实现页面跳转的方法 在 Vue 中实现页面跳转可以通过多种方式,主要包括使用 Vue Router 提供的导航方法和原生 JavaScript 的方式。 使用 Vue Router 的 ro…