首页 > 其他分享 >使用Axios实现表格数据动态加载与转换

使用Axios实现表格数据动态加载与转换

时间:2025-01-18 12:56:46浏览次数:3  
标签:Axios 表格 datetime js Vue 加载 数据 页面

在现代的Web开发中,前后端分离架构越来越普遍。前端页面通过Ajax请求从后端获取数据并进行展示是一种常见的需求。本文将通过一个简单的示例,介绍如何使用Vue.js结合Element UI以及Axios库,实现表格数据的动态加载与转换。

一、项目背景

在开发一个会员管理系统时,我们需要在前端页面展示会员列表。会员列表的数据存储在服务器端的数据库中,前端页面需要通过Ajax请求获取这些数据,并将其展示在表格中。为了提升用户体验,我们还需要对获取到的数据进行一些简单的转换,例如将性别的数字标识转换为文字描述,将注册时间的格式进行调整等。

二、技术栈

  • Vue.js:一个渐进式JavaScript框架,用于构建用户界面。

  • Element UI:一套为开发者、设计师和产品经理量身定做的基于Vue 2.0的桌面端组件库。

  • Axios:基于Promise的HTTP客户端,用于浏览器和node.js,方便我们发送HTTP请求。

三、项目实现

1. 页面结构

首先,我们创建一个基本的HTML页面结构,引入必要的CSS和JavaScript文件。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link
      rel="stylesheet"
      href="https://labfile.oss.aliyuncs.com/courses/3815/element-ui.css&#34; 
    />
    <title>表格数据转换</title>
    <style>
      .container {
        width: 800px;
        margin: 0 auto;
      }
    </style>
  </head>
  <body>
    <div id="app">
      <el-card class="container">
        <h2>会员列表</h2>
        <el-table
          :data="tableData"
          stripe
          name="userTable"
          style="width: 700px"
        >
          <el-table-column prop="username" label="用户名" width="180">
          </el-table-column>
          <el-table-column prop="sex" label="性别" width="180">
          </el-table-column>
          <el-table-column prop="datetime" label="注册时间" width="180">
          </el-table-column>
          <el-table-column prop="vip" label="会员"> </el-table-column>
        </el-table>
      </el-card>
    </div>
    <script src="<url id="" type="url" status="" title="" wc="">https://labfile.oss.aliyuncs.com/courses/3815/vue.js"></script></url> 
    <script src="<url id="" type="url" status="" title="" wc="">https://labfile.oss.aliyuncs.com/courses/3815/element-ui.js"></script></url> 
    <script src="<url id="" type="url" status="" title="" wc="">https://labfile.oss.aliyuncs.com/courses/9203/axios.min.js"></script></url> 
    <script>
      new Vue({
        el: "#app",
        data: function () {
          return {
            tableData: [],
          };
        },
        mounted() {
          axios({
            url: "fetchTableData.json",
          })
            .then((response) => {
              const users = response.data.data;
              const processedUsers = users.map((user) => {
                return {
                  ...user,
                  sex: user.sex === 1 ? "男" : "女",
                  vip: user.vip === 1 ? "是" : "否",
                  datetime: this.formatDateString(user.datetime),
                };
              });

              // 将处理后的数据赋值给 tableData
              this.tableData = processedUsers;
            })
            .catch((error) => {
              console.error("Error fetching JSON:", error);
            });
        },
        methods: {
          formatDateString(dateString) {
            // 确保输入的字符串长度为8
            // 使用 slice 方法提取年、月、日
            const year = dateString.slice(0, 4);
            const month = dateString.slice(4, 6);
            const day = dateString.slice(6, 8);
            // 拼接成新的格式
            return `${year}-${month}-${day}`;
          },
        },
      });
    </script>
  </body>
</html>

3. JSON数据文件

为了使示例完整,我们还需要一个JSON文件来模拟后端返回的数据。创建一个名为fetchTableData.json的文件,内容如下:

{
    "data": [
        {
            "username": "user1",
            "sex": 1,
            "datetime": "20240512",
            "vip": 1
        },
        {
            "username": "user2",
            "sex": 0,
            "datetime": "20240615",
            "vip": 0
        },
        {
            "username": "user3",
            "sex": 1,
            "datetime": "20240718",
            "vip": 1
        },
        {
            "username": "user4",
            "sex": 0,
            "datetime": "20240820",
            "vip": 0
        }
    ]
}

将该JSON文件放置在与HTML页面相同的目录下,确保Axios请求能够正确找到并加载数据。

四、运行效果

当页面加载完成后,Axios会自动发送请求获取fetchTableData.json文件中的数据。获取到数据后,通过Vue实例中的方法对数据进行处理,将性别的数字标识转换为“男”或“女”,将注册时间的格式从“YYYYMMDD”转换为“YYYY-MM-DD”,并将处理后的数据赋值给tableData。最终,Element UI的表格组件会根据tableData中的数据渲染出会员列表表格。

五、总结

通过本文的示例,我们学习了如何使用Vue.js、Element UI和Axios实现表格数据的动态加载与转换。Axios的使用使得发送HTTP请求变得简单而高效,Vue.js的响应式数据绑定特性让页面的更新变得轻松自如。希望本文对你有所帮助,如果你有任何问题或建议,欢迎在评论区留言交流。

标签:Axios,表格,datetime,js,Vue,加载,数据,页面
From: https://blog.csdn.net/weixin_66708577/article/details/145225664

相关文章

  • 【神兵利器】Windows平台shellcode免杀加载器
    项目介绍免杀,bypassav,免杀框架,nim,shellcode,使用nim编写的shellcode加载器,可快速生成免杀可执行文件下载地址Windows平台shellcode免杀加载器下载:Windows平台shellcode免杀加载器下载项目特点1:自带四种加载方式2:可自行拓展加载方式3:支持两种加密技术,分别位3des加密和凯撒密......
  • axios-ntlm 这个库的作用?
    axios-ntlm是一个用于在HTTP请求中添加NTLM(NTLANManager)身份验证支持的Axios插件。NTLM是一种专有的安全协议,主要用于Windows网络环境中的身份验证。它允许客户端和服务端通过一系列消息交换来验证用户的身份,而不需要每次请求都发送用户名和密码。axios-ntlm的主要作......
  • 使用 pdf.js 通过文件流方式加载pdf文件
    关于Pdf.js的基础知识,请参考我的博客 使用pdf.js在网页中加载pdf文件使用pdf.js跨域问题的处理方法    上面两篇博客中介绍的内容都是基于直接加载远程服务器中静态PDF文件(即URL地址)来渲染PDF的,实际业务场景中,如与第三方系统对接过程中,第三方系统不直接公开......
  • vue中使用axios获取不到响应头Content-Disposition的解决办法
    项目中,后端返回的文件流,fileName是机构名称+服务器时间。前端需要拿到响应头里的Content-Disposition字段的值,从中获取文件名在控制台Headers中可以看到相关的字段和文件名,但是在axios里面却获取不到 如果想要让客户端访问到相关信息,服务器不仅要在heade里添加,还要将它们在......
  • pandas读取和写入excel表格
    读取excel表格pandas.read_excel()函数read_excel()函数用于读取Excel文件并将其转换为Pandas的DataFrame对象。这是处理Excel数据的基础。函数原型如下:pandas.read_excel(io, sheet_name=0, *, header=0, names=None, index_col=None, usecols=None, dtype=None, e......
  • 深入理解 Three.js 加载器:如何导入外部模型(GLTF、OBJ、FBX)
    深入理解Three.js加载器:如何导入外部模型(GLTF、OBJ、FBX)Three.js提供了强大的加载器系统,可以轻松地将外部模型(如GLTF、OBJ、FBX等格式)加载到场景中,为你的3D项目增添真实感。在这篇文章中,我们将深入讲解Three.js加载器的使用方法,并结合实际案例展示如何在Vue项......
  • Web前端------HTML表格
    一.表格标签介绍表格,类似操作的软件excel一样,通过规范的行列方式展示数据的一种视图!        网页中(初级开发),对于这种规范的数据,使用表格标签最方便的;        实际开发(高级开发),大量的插件,可以直接生成好看的表格数据,反倒原始的表格标签使用频率降低<table><......
  • (14-3-02)基于Latent Diffusion Transformer的文生视频系统:数据集处理(2)加载并处理Taic
    6.4.3 加载并处理Taichi数据集文件taichi_datasets.py实现了一个Taichi数据集类,用于加载和处理分帧存储的视频数据,特别是太极表演相关的帧序列。它包括从数据目录中读取视频帧、按时间进行帧采样、将帧数据转换为张量并应用数据增强等功能。代码通过torch.utils.data.Da......
  • JPA懒加载与实体分离的解决方案
    在使用JPA进行数据持久化操作时,懒加载是一个常见的优化手段。它允许我们在加载父实体时,不立即加载关联的子实体,从而提高性能。然而,懒加载也带来了一些问题,尤其是在实体分离(detached)的情况下。本文将通过一个具体的例子,详细探讨如何解决懒加载关联实体在实体分离后无法获取的......
  • 如何有效提升网站网页的加载速度,确保用户流畅访问体验
    为了帮助您有效提升网站网页的加载速度,以下是详细的优化方法和解决方案:优化图片资源压缩图片文件:大尺寸或高分辨率的图片会显著增加网页加载时间。建议使用专业的图片压缩工具(如TinyPNG、ImageOptim等),在不影响视觉质量的前提下减小图片文件大小。选择合适的图片格式:根据内容......