Vue第四天 网络应用

**axios:
功能强大的网络请求库
先导包
**
两种方式:
在这里插入图片描述
get方式:
第一个function是请求成功时触发,第二个是请求失败的时候触发
里面的参数可以获取信息
axios.get(地址?key=value&key2=value2).then(function(参数){},function(参数))

POST方式:
axios.get(地址,{key:value,key2:value2}).then(function(参数){},function(参数))

区别:get方法和POST方法最大的区别就是传入的值一个是keyvalue键值对形式,一个是以对象形式

axios必须先导入才可以使用
使用get或者post方法即可发送对应的请求
then方法中的回调函数会在请求成功或失败时触发
通过回调函数的形参可以获取响应内容,或错误信息

axios回调函数中的this已经改变,无法访问到data中的数据
把this保存起来,回调函数中直接使用保存的this即可
和本地应用最大区别就是改变了数据来源

<body>
    <div id="aop">
        <input type="submit"  value="获取笑话" @click="ax">
        <p>{{msg}}</p>
    </div>
    <script>
       var vu=new Vue({
           el:"#aop",
           data:{
                msg:""
           },
           methods:{
               ax:function(){
                //    再axios方法内调用不到data数据 所以只能一步一步调用
                    var that=this
                   axios.get("https://autumnfish.cn/api/joke").then
                   (function(response){
                     console.log(response.data)
                    //  没有值
                     console.log(that.msg)
                     that.msg=response.data
                   },function(err){})
               }
           }
       })
    </script>
    
</body>

天气预报(作业):
回车查询:

在这里插入代码片
<div id="aop">
    <input type="text" value="请输入" v-model="city" @keyup.enter="aa" placeholder="请输入">
    <input type="submit" value="提交">
    <ul>
        <li v-for="itme in wis">
            {{itme}}
        </li>
    </ul>
</div>
<script>
    var v=new Vue({
        el:"#aop",
        data:{
            city:"",
            wis:[]
        },
        methods:{
            aa:function(){
                var that=this
                axios.get("http://wthrcdn.etouch.cn/weather_mini?city="+this.city).then
                (function(response){
                       console.log(response)
                       that.wis=response.data.data.forecast
                },function(err){})
            }
        }
       
    })
</script>

**点击查询:
自定义参数可以让代码的复用性更高
methods中定义的方法内部,可以使用this关键字点出其他方法
**

<body>
    
    <div id="aop">
        <input type="text" value="请输入" v-model="city" @keyup.enter="aa" placeholder="请输入">
        <span @click="bb('北京')">北京</span>
        <span @click="bb('上海')">上海</span>
        <input type="submit" value="提交">
        <ul>
            <li v-for="itme in wis">
                {{itme}}
            </li>
        </ul>
    </div>
    <script>
        var v=new Vue({
            el:"#aop",
            data:{
                city:"",
                wis:[]
            },
            methods:{
                aa:function(){
                    var that=this
                    axios.get("http://wthrcdn.etouch.cn/weather_mini?city="+this.city).then
                    (function(response){
                           console.log(response)
                           that.wis=response.data.data.forecast
                    },function(err){})
                },
                // 点击查询
                bb:function(vs){
                  this.city=vs

                  this.aa();
                }
            }
           
        })
    </script>
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值