Vue结合Axios异步请求json 新手坑!

9 篇文章 0 订阅
1 篇文章 0 订阅

Vue结合Axios异步请求json

我在学习Vue的时候,由于官方不推荐使用jQuery因为jQuery需要频繁的改动Dom所以Vue官方推荐使用Axios,了解到Axios这个http库
下面来说一下使用Axios的一些基本流程

首先导入:Vue.js库 我这里使用的是cdn在线导入的方式:

	<!--axios cdn在线引入-->
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

首先目录结构:
目录结构

然后,访问我本地的json数据。这里Axios的get我写在beforeMount这个方法里面

第一种写法,是网上目前看到最多的,但是我觉得对小白不太友好,我就自己写了一个

<script type="text/javascript">
			var myvue =new Vue({
				el:"#app",
				data(){
					return{
						info:{
							name:null,
							sites: [
								{
									name: null,
									url: null
								}
							]
						}
					}
				},
				beforeMount:function(){
					axios.get('data.json').then(response=>(this.info=response.data));	
				}
				
			})

第二种写法,我自己写了一个

<script type="text/javascript">
			var myvue =new Vue({
				el:"#app",
				data(){
					return{
						info:{
							name:null,
							sites: [
								{
									name: null,
									url: null
								}
							]
						}
					}
				},
				beforeMount:function(){
					axios.get('data.json').then(function(response){
						console.log(response)
						//这个myvue是我自己定义了一个 new Vue()的一个变量
						myvue.$data.info=response.data
						console.log("这是this.info")
						console.log(myvue.$data.info)
						console.log(myvue.$data.info.name) 
						
					});
				}
				
			})
		</script>

info里面是json的格式
这里为什么要

myvue.$data.info

这样写?为什么不this.info?
这里坑来了,使用箭头函数调用跟this.info不是同一个this,欸就很坑!在这里卡了半个多小时,明明数据都拿到了但是就传递不过去,可以说是灵异事件了,后来了解到
话不多说直接上图!
在这里插入图片描述
在这里插入图片描述
文章地址:https://www.cnblogs.com/xxcn/p/11056495.html
话又说回来了,为什么要用XXX.$data.info因为这样可以直接调用你创建的vue里面的data
好嘞,问题解决!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值