关于axios请求数据回来,数据可以挂载却出现undefined

该项目是用Vue开发的,页面数据照样有,后台却报错。

原因:是因为axios请求异步操作,前端页面挂载之后才拿到后端数据的,虽然不影响正常数据但控制台会报错[Vue warn] ,看着就很难受啊,于是就有下面的几种解决方案。

  1. v-if
<img v-if="skuImageList[0]" :src="skuImageList[0].imgUrl" />
复制代码

解释:先用v-if判断skuImageList[0]是否存在,存在,再渲染界面

  1. 封装判断给空值
<img :src="imgObj.imgUrl" />
复制代码

在Vue的computed计算属性中留有余地,给可能的空值,如下代码

computed:{
 imgObj(){
     return this.skuImageList[0] || {}
 }
}


作者:wzdf
链接:https://juejin.cn/post/7138049504422903839/
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 Vue 中使用 Axios 发送请求可以按照以下步骤进行: 1. 安装 Axios 通过 npm 安装 Axios: ``` npm install axios ``` 2. 在 Vue 中使用 Axios 在需要发送请求的组件中,可以使用以下代码引入 Axios: ```javascript import axios from 'axios' ``` 然后可以使用 Axios 发送请求: ```javascript axios.get('/api/data') .then(function (response) { console.log(response) }) .catch(function (error) { console.log(error) }) ``` 以上代码发送了一个 GET 请求到 /api/data 接口,并在控制台输出了响应数据或错误信息。 3. 配置 Axios 在 Vue 项目中,可以通过在 main.js 中配置 Axios 的全局默认值来设置一些默认的请求参数和响应处理: ```javascript import axios from 'axios' axios.defaults.baseURL = 'http://api.example.com' axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('token') axios.defaults.headers.post['Content-Type'] = 'application/json' Vue.prototype.$http = axios ``` 以上代码设置了 Axios 的默认请求地址、请求头部授权信息和 POST 请求的默认 Content-Type,然后将 Axios 实例挂载到 Vue.prototype 上,以便在组件中使用 this.$http 调用 Axios。 4. 在组件中使用 Axios 在组件中使用 Axios 发送请求也很简单,可以在组件的 methods 中定义一个发送请求的方法: ```javascript import axios from 'axios' export default { name: 'MyComponent', methods: { fetchData () { axios.get('/api/data') .then(response => { this.data = response.data }) .catch(error => { console.log(error) }) } } } ``` 以上代码定义了一个 fetchData 方法,当组件被创建时调用该方法,发送 GET 请求到 /api/data 接口,并将响应数据赋值给组件的 data 属性。如果请求失败,则在控制台输出错误信息。 以上就是在 Vue 中使用 Axios 发送请求的基本步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值