其他分享
首页 > 其他分享> > Vue框架学习-Vue网络应用

Vue框架学习-Vue网络应用

作者:互联网

前言

本文是Vue框架学习的第三部分-Vue的网络应用,主要学习axios以及和Vue结合的使用。
学习资料来源是B站的一个教学视频,我在文末会附上链接。

axios基本使用

功能强大的网络请求库

<script src="http://unpkg.com/axios/dist/axios.min.js"></script>

axios.get(地址?key=value&key2=value2).then(function(response){},function(err){})
axios.post(地址,{key:value,key2:value2}).then(function(response){},function(err){})

提供了两个预先准备好的接口

  1. 通过get请求获取笑话的接口
    get
  2. 通过post请求注册用户的接口
    post
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewpoint" content = "width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>axios基本使用</title>
    <link rel="stylesheet" type="text/css" href=""/>
</head>

<body>
    <input type="button" value="get请求" class="get">
    <input type="button" value="post请求" class="post">

    <!-- 官方提供的axios在线地址 -->
    <script src="http://unpkg.com/axios/dist/axios.min.js"></script>
    <script>
        /*
            接口1:随机笑话
            请求地址:https://autumnfish.cn/api/joke/list
            请求方法:get
            请求参数:num(笑话条数,数字)
            响应内容:随机笑话
        */
        document.querySelector(".get").onclick = function () {
            axios.get("https://autumnfish.cn/api/joke/list?num=3")
            .then(function (response) {
                console.log(response);
            },function(err){
                console.log(err);
            })
        }
        /*
            接口2:用户注册
            请求地址:https://autumnfish.cn/api/user/reg
            请求方法:post
            请求参数:username(用户名,字符串)
            响应内容:注册成功或失败
        */
        document.querySelector(".post").onclick = function () {
            axios.post("https://autumnfish.cn/api/user/reg",{username:"zxy"})
            .then(function (response) {
                console.log(response);
            },function(err){
                console.log(err);
            })
        }
    </script>    
</body>

</html>

axios小结

axios+Vue

axios如何结合vue开发网络应用
axios+Vue

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewpoint" content = "width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>axios+Vue</title>
    <link rel="stylesheet" type="text/css" href=""/>
</head>

<body>
    <div id="app">
        <input type="button" value="获取笑话" @click="getJoke">
        <p>
            {{ joke }}
        </p>
    </div>
    <!-- 官方提供的axios在线地址 -->
    <script src="http://unpkg.com/axios/dist/axios.min.js"></script>
    <!-- 开发环境版本,包含了有帮助的命令行警告 -->
    <script src="http://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

    <script>
        /*
            接口:随机获取一条笑话
            请求地址:https://autumnfish.cn/api/joke
            请求方法:get
            请求参数:无
            响应内容:随机笑话
        */
        var app = new Vue({
            el:"#app",
            data:{
                joke:"很好笑的笑话"
            },
            methods:{
                getJoke:function(){
                    var that = this;
                    axios.get("https://autumnfish.cn/api/joke").then
                    (function(response){
                        console.log(response);
                        that.joke = response.data;
                    },function(err) {

                    })
                }
            }
        })
    </script>

    <!-- 开发环境版本,包含了有帮助的命令行警告 -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    
</body>

</html>

案例练习:天知道

查询天气的应用
天知道

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewpoint" content = "width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>axios+Vue</title>
    <link rel="stylesheet" type="text/css" href=""/>
</head>

<body>
    <div class="wrap" id="app">
        <div class="search-form">
            <div class="logo"></div>
            <div class="form-group">
                <input type="text" v-model="city" @keyup.enter="searchWeather" class="input_txt" placeholder="请输入查询的天气">
                <button class="input_sub" @click="searchWeather">
                    搜 索
                </button>
            </div>
            <div class="hotkey">
                <a href="javascript:;" @click="changeCity('北京')">北京</a>
                <a href="javascript:;" @click="changeCity('上海')">上海</a>
                <a href="javascript:;" @click="changeCity('广州')">广州</a>
                <a href="javascript:;" @click="changeCity('深圳')">深圳</a>
            </div>
        </div>
        <ul class="weather_list">
            <li v-for="item in weatherList">
                <div class="info_type">
                    <span class="iconfont">
                        {{ item.type }}
                    </span>
                </div>
                <div class="info_temp">
                    <b>
                        {{ item.low }}
                    </b>
                    ~
                    <b>
                        {{ item.high }}
                    </b>
                </div>
                <div class="info_date">
                    <span>
                        {{ item.date }}
                    </span>
                </div>
            </li>
        </ul>
    </div>

    <!-- 官方提供的axios在线地址 -->
    <script src="http://unpkg.com/axios/dist/axios.min.js"></script>
    <!-- 开发环境版本,包含了有帮助的命令行警告 -->
    <script src="http://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <!-- 导入自己的js -->
    <script src="./js/weather.js"></script>
</body>

</html>

JavaScript部分:


/*
    请求地址:https://wthrcdn.etouch.cn/weather_mini
    请求方法:get
    请求参数:city(城市名)
    响应内容:天气信息

    1. 点击回车
    2. 查询数据
    3. 渲染数据
*/

var app = new Vue({
    el:"#app",
    data:{
        city:'',
        weatherList:[]
    },
    methods: {
        searchWeather:function(){
            // console.log("天气查询");
            // 保存this
            var that = this;
            // 调用接口
            axios.get('https://wthrcdn.etouch.cn/weather_mini?city='+this.city)
            .then(function(response){
                that.weatherList = response.data.data.forecast;
            })
            .catch(function(err){})
        },
        changeCity:function(city){
            this.city = city;
            this.searchWeather();
        }
    }
})
  1. 回车查询
  1. 点击查询

标签:function,axios,请求,框架,网络应用,get,Vue,response
来源: https://blog.csdn.net/u011708337/article/details/112548012