当前位置:首页 > 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 中定义表单的初始数据,可通过接口获取原始信息填充:

vue实现修改信息页面

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

加载原始数据

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

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

表单提交逻辑

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

vue实现修改信息页面

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 }
  }
}

反馈与跳转

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

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 实现数据双向绑定。 <template>…

vue实现两个登录页面

vue实现两个登录页面

实现多个登录页面的方法 在Vue项目中实现两个不同的登录页面,可以通过路由配置和组件分离的方式完成。以下是具体实现方法: 配置路由文件 在router/index.js中定义两个独立的路由,分别指向…

php实现页面跳转

php实现页面跳转

PHP 页面跳转方法 在 PHP 中,可以通过多种方式实现页面跳转,以下是几种常见的方法: 使用 header() 函数 header() 函数是 PHP 中最常用的跳转方法,通过发送 HTTP…

vue实现 页面

vue实现 页面

Vue 实现页面的基本方法 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现页面的常见方法: 单文件组件(SFC) 使用 .vue 文件组织页面结构,包含模板、脚…

h5实现页面切换

h5实现页面切换

h5实现页面切换的方法 在H5中实现页面切换可以通过多种方式完成,包括使用原生HTML链接、JavaScript动态加载、框架路由等。以下是几种常见的方法: 使用原生HTML的<a>标…

jquery跳转页面

jquery跳转页面

jQuery 跳转页面方法 使用 jQuery 实现页面跳转可以通过多种方式完成,以下是几种常见的方法: 使用 window.location.href 进行跳转 $(document).re…