
Vue.js:高效渲染双接口表格数据并进行格式化
本文将演示如何在Vue.js应用中,利用两个不同的接口数据渲染表格,并对其中一个接口的返回数据进行精细化格式化处理。
挑战:整合与格式化来自不同数据源的数据
我们的目标是创建一个表格,它同时显示来自两个独立API接口的数据。其中一个接口提供表格的主体数据,另一个接口提供需要进行格式化处理的补充信息。
立即学习“前端免费学习笔记(深入)”;
解决方案:异步数据获取与数据处理
异步数据获取: 使用async/await或Promise,分别从两个API接口获取数据。我们将数据存储在两个响应式变量中,例如tableData和additionalData。在mounted生命周期钩子中发起数据请求。
数据格式化: 对第二个接口(additionalData)返回的数据进行处理:
过滤非必要字段: 删除status、port_id等不需要显示在表格中的字段。数据转换: 使用Object.entries()将对象转换为键值对数组。过滤零值: 移除值为0的键值对。数据重组: 将数组中的每一项转换为{key, value}格式的对象。格式化输出: 使用map()函数,将键值对转换为key.toUpperCase()/value格式的字符串,并用分号;分隔。数据合并: 基于portId字段,将格式化后的数据合并到tableData中。
代码示例:
Port ID Rate Throughput Formatted Frequency {{ item.portId }} {{ item.rate }} {{ item.thruput }} {{ item.formattedFrequency }}
import api from './api'; // 假设api.js包含你的API调用函数export default { data() { return { tableData: [], additionalData: {} }; }, mounted() { this.fetchData(); }, methods: { async fetchData() { try { const [mainData, extraData] = await Promise.all([ api.GetSerialId(), api.GetFrequencyData() // 假设这是第二个接口 ]); this.tableData = mainData.data.port_thruput.split(',').map((item, index) => { if (index % 3 === 0) { const [portId, rate, thruput] = mainData.data.port_thruput.split(',').slice(index, index + 3); return { portId, rate, thruput }; } return null; }).filter(item => item !== null); this.formatAdditionalData(extraData.data); } catch (error) { console.error('Error fetching data:', error); } }, formatAdditionalData(data) { const entries = Object.entries(data); const filteredData = entries.filter(([key, value]) => value !== 0); const formatted = filteredData.map(({ key, value }) => { return `${key.replace("_FREQ", "").toUpperCase()}/${value}`; }); this.tableData = this.tableData.map(item => ({ ...item, formattedFrequency: formatted.join('; ') })); } }};
这段代码展示了如何获取数据、格式化数据以及将格式化后的数据与主数据整合到一起,最终渲染到Vue.js表格中。请根据你的实际API接口和数据结构调整代码。 记住替换api.GetSerialId()和api.GetFrequencyData()为你的实际API调用函数。
以上就是Vue.js中如何通过两个接口渲染表格数据并进行数据格式化?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/191501.html
微信扫一扫
支付宝扫一扫