vue 调用后端两次接口每次返回的数组值不一样 如 需要组合成 let a = [{name:'套票',arr:res.data},{name:'门票',arr:res.data}]具体代码实现逻辑
时间: 2024-02-01 22:16:12 浏览: 69
假设你使用的是 Vue.js 的 axios 库来调用后端接口,那么可以在 Vue.js 组件的 created 钩子函数中,先调用一次后端接口获取数据,然后再根据需要组合成要求的数据结构。具体代码实现如下:
```html
<template>
<div>
<!-- 这里展示组合后的数据 -->
<ul v-for="(item, index) in combinedData" :key="index">
<li>{{ item.name }}</li>
<li v-for="(subItem, subIndex) in item.arr" :key="subIndex">{{ subItem }}</li>
</ul>
</div>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {
data1: [], // 第一次请求的数据
data2: [], // 第二次请求的数据
};
},
created() {
// 第一次请求数据
axios.get('/api/getData1').then(res => {
this.data1 = res.data;
this.combineData();
});
// 第二次请求数据
axios.get('/api/getData2').then(res => {
this.data2 = res.data;
this.combineData();
});
},
computed: {
// 根据 data1 和 data2 组合成要求的数据结构
combinedData() {
let result = [];
if (this.data1.length > 0 && this.data2.length > 0) {
result = [
{
name: '套票',
arr: this.data1,
},
{
name: '门票',
arr: this.data2,
},
];
}
return result;
},
},
};
</script>
```
在上面的代码中,我们首先在 created 钩子函数中发起两次请求,获取到 data1 和 data2 的数据。然后通过 computed 计算属性,根据 data1 和 data2 组合成要求的数据结构 combinedData,最后在组件中展示 combinedData 的内容。由于计算属性的特性,当 data1 或 data2 的值发生变化时,combinedData 会自动重新计算,因此我们可以在请求到数据后调用 combineData() 方法来触发计算属性的重新计算。
阅读全文