vue 请求嵌套_vue2.0 初始化请求的JSON多层嵌套问题

接受的数据可以多层嵌套,但是当你调用的时候可能会出现问题,这不是因为数据本身的问题,是你调用的时机的问题。

data () {

return {

data: '' // 你在data中定义了data

}

}

created () {

var self = this

getJSON(){

.....

self.data = Data // Data是接受的json数据

}

}

当你的页面中的v-for渲染的时候,created的数据肯定是还没获取到的,如果你的json是只嵌套一层,因为data你已经定义好了,所以data.a不会出现data undefined的错误,只是找不到data.a的数据,当你异步请求完之后,会自动更新。但是如果你的json是嵌套两层,比如data.a.b,那么当你调用data.a.b的时候,因为data.a还没有定义,所以就会报错说Cannot read property 'b' of undefined。

如果你要避免这个,就在v-for的div外再嵌套一层

如果你切换路由后页面不显示了,你可以看看你是否获取到了数据,应该是没有获取到数据造成的。安装个dev devtools插件可以看vue的一些数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好,针对您的问题,我可以给您一些思路和解决方案。 对于 Vue 中的多个嵌套请求,您可以使用 Promise.all() 方法来处理。Promise.all() 方法可以将多个 Promise 对象组合成一个 Promise 对象,等到所有的 Promise 对象都成功返回后,才会触发回调函数。 您可以先定义一个数组,将所有的请求都放到数组中,然后使用 Promise.all() 方法来处理请求。代码示例如下: ```javascript let url1 = '请求1的地址'; let url2 = '请求2的地址'; let url3 = '请求3的地址'; let promise1 = axios.get(url1); let promise2 = axios.get(url2); let promise3 = axios.get(url3); Promise.all([promise1, promise2, promise3]).then(function(results) { // 所有请求都成功返回后,会触发这里的回调函数 let result1 = results[0]; let result2 = results[1]; let result3 = results[2]; // 进行后续操作 }).catch(function(error) { // 如果有任何一个请求失败,会触发这里的回调函数 console.log(error); }); ``` 在这个示例中,我们使用了 axios 库来发送请求,并将请求结果保存到 promise1、promise2、promise3 三个 Promise 对象中。然后我们使用 Promise.all() 方法来将这三个 Promise 对象组合成一个 Promise 对象,等到所有请求都成功返回后,会触发 then() 方法中的回调函数。 在回调函数中,我们可以通过 results 参数来获取所有请求的返回结果。如果有任何一个请求失败,会触发 catch() 方法中的回调函数。 希望这可以解决您的问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值