使用 Axios 获取用户数据并渲染——个人信息设置+头像修改

devtools/2025/2/8 4:32:57/

目录

功能介绍

完整源码

1. HTML 代码

2. JavaScript 代码

(1)获取用户信息并渲染

(2)头像上传

如何使用?

总结


本项目是一个用户个人信息管理页面,用于获取、修改用户信息以及更换头像。本教程详细介绍了如何使用 HTML + JavaScript (Axios) + Bootstrap 进行开发,让初学者可以轻松学习并直接使用源码。


功能介绍

  1. 获取用户信息
    • 通过 Axios 发送 GET 请求,从服务器获取用户数据(邮箱、昵称、性别、个人简介、头像等)。
  2. 渲染信息到页面
    • 将服务器返回的数据填充到表单中,让用户可以查看和修改个人资料。
  3. 更换头像
    • 允许用户上传新头像,并通过 Axios 发送 PUT 请求,将头像更新到服务器。

完整源码

以下是完整的HTML 和 JavaScript 代码,其中:

  • HTML 负责页面结构和样式
  • JavaScript 负责数据请求、渲染和头像上传

1. HTML 代码

该部分代码用于构建个人信息管理页面,包括表单输入框、头像上传、提交按钮等

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet"><link rel="stylesheet" href="./css/index.css"><title>个人信息设置</title>
</head><body><!-- 提示框 --><div class="toast my-toast" data-bs-delay="1500"><div class="toast-body"><div class="alert alert-success info-box">操作成功</div></div></div><!-- 主要内容区域 --><div class="container"><ul class="my-nav"><li class="active">基本设置</li><li>安全设置</li><li>账号绑定</li><li>新消息通知</li></ul><div class="content"><div class="info-wrap"><h3 class="title">基本设置</h3><form class="user-form" action="javascript:;"><div class="form-item"><label for="email">邮箱</label><input id="email" name="email" class="email" type="text" placeholder="请输入邮箱" autocomplete="off"></div><div class="form-item"><label for="nickname">昵称</label><input id="nickname" name="nickname" class="nickname" type="text" placeholder="请输入昵称" autocomplete="off"></div><div class="form-item"><label>性别</label><label class="male-label"><input type="radio" name="gender" class="gender" value="0">男</label><label class="male-label"><input type="radio" name="gender" class="gender" value="1">女</label></div><div class="form-item"><label for="desc">个人简介</label><textarea id="desc" name="desc" class="desc" placeholder="请输入个人简介" cols="20" rows="10" autocomplete="off"></textarea></div><button class="submit">提交</button></form></div><!-- 头像上传 --><div class="avatar-box"><h4 class="avatar-title">头像</h4><img class="prew" src="./img/头像.png" alt=""><label for="upload">更换头像</label><input id="upload" type="file" class="upload"></div></div></div><!-- 引入依赖库 --><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.min.js"></script><script src="./lib/form-serialize.js"></script><script src="./js/index.js"></script>
</body>
</html>

2. JavaScript 代码

该部分代码用于从服务器获取数据、渲染到页面、处理头像上传

(1)获取用户信息并渲染
javascript">axios({url: 'http://hmajax.itheima.net/api/settings', // API 地址method: 'get',params: {creator: '小宁'  // 传递参数}
}).then(result => {const userObj = result.data.data;  // 假设返回的数据结构为 { data: { ... } }console.log(userObj);// 遍历用户数据并渲染到页面Object.keys(userObj).forEach(key => {if (key === 'avatar') {// 设置头像document.querySelector('.prew').src = userObj[key];} else if (key === 'gender') {const RadioList = document.querySelectorAll('.gender');const gNum = userObj[key];RadioList[gNum].checked = true;} else {document.querySelector(`.${key}`).value = userObj[key];}});
});
(2)头像上传
javascript">document.querySelector('.upload').addEventListener('change', e => {const fd = new FormData();fd.append('avatar', e.target.files[0]); // 添加文件fd.append('creator', "小宁");  // 传递创建者信息axios({url: 'http://hmajax.itheima.net/api/avatar',method: 'put',data: fd}).then(result => {console.log(result);const imgUrl = result.data.data.avatar;document.querySelector('.prew').src = imgUrl; // 更新头像});
});

如何使用?

  1. 下载源码,创建一个本地 HTML 文件,并复制粘贴 HTML 代码。
  2. 新建 index.js 文件,复制粘贴 JavaScript 代码,并确保正确引用它。
  3. 运行页面,打开浏览器查看效果。
  4. 可以在服务器上运行,或使用本地 HTTP 服务器(如 VSCode Live Server 插件)。

总结

  • 使用 HTML 构建页面结构
  • 通过 Axios 发送 HTTP 请求
  • 获取并渲染用户信息
  • 支持头像上传

本教程适用于前端开发初学者希望学习用户信息管理功能的开发者,希望对你有所帮助!🚀


http://www.ppmy.cn/devtools/157013.html

相关文章

大一计算机的自学总结:数据结构设计相关题

前言 说实在的&#xff0c;感觉这种设计数据结构的题比链表题还要ex&#xff0c;尤其是当哈希表和链表一起上的时候&#xff01; 一、设计有setAll功能的哈希表 #include <bits/stdc.h> using namespace std;int cnt0,setAllTime0,setAllValue; map<int,pair<in…

数据结构-队列

1.队列 1.1什么是队列 只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表称为队列&#xff0c;队列遵循先进先出FIFO&#xff08;First In First Out&#xff09;的原则。 入队列&#xff1a;进行插入操作时的一段称为队尾 出队列&#xff1a…

金蝶云星空k3cloud webapi报“java.lang.Class cannot be cast to java.lang.String”的错误

最近在对接金蝶云星空k3cloud webapi时&#xff0c;报一个莫名其妙的转换异常&#xff0c;具体如下&#xff1a; 同步部门异常! ERP接口登录异常&#xff1a;java.lang.Class cannot be cast to java.lang.String at com.jkwms.k3cloudSyn.service.basics.DeptK3CloudService.…

Vue基础:侦听器(侦听属性)【watch、watchEffect】

文章目录 引言I 侦听器(侦听属性)基本示例侦听数据源类型回调的触发时机自动停止侦听器条件式的侦听逻辑实现同步创建侦听器手动停止异步回调创建的侦听器II 侦听器选项说明一次性侦听器 once即时回调的侦听器 immediate深层侦听器 deep后置刷新 flush: post同步侦听器 flush…

面经-C语言——堆和栈的区别,引用和指针区别,Linux的常用指令,RS232和RS485,TCP连接建立与断开

面经-C语言——堆和栈的区别&#xff0c;引用和指针区别&#xff0c;Linux的常用指令,RS232和RS485,TCP连接建立与断开 堆(Heap)和栈(Stack)的详细比较引用和指针区别对比表&#xff1a;Linux的常用指令RS232和RS485的详细比较&#xff1a;TCP连接建立与断开三次握手&#xff0…

18爬虫:关于playwright相关内容的学习

1.如何在python中安装playwright 打开pycharm&#xff0c;进入终端&#xff0c;输入如下的2个命令行代码即可自动完成playwright的安装 pip install playwright ——》在python中安装playwright第三方模块 playwright install ——》安装playwright所需的工具插件和所支持的…

Java JDK17 API 离线文档下载

Java JDK17 API 离线文档下载 JavaJDK17API离线文档下载 本仓库提供了一个方便的资源文件下载&#xff0c;即 **Java JDK17 API 离线文档**。该文档是Java开发者在离线环境下查阅JDK17 API的必备工具。无论你是Java初学者还是经验丰富的开发者&#xff0c;这份离线文档都能帮助…

C++11详解(三) -- 可变参数模版和lambda

文章目录 1.可变模版参数1.1 基本语法及其原理1.2 包扩展1.3 empalce系列接口1.3.1 push_back和emplace_back1.3.2 emplace_back在list中的使用&#xff08;模拟实现&#xff09; 2. lambda2.1 lambda表达式语法2.2 lambda的捕捉列表2.3 lambda的原理 1.可变模版参数 1.1 基本…