• 四、Vue CLI-异步请求(axios)


    一、模块的安装

    npm install axios --save
    #--save可以不用写

    如图:

    二、配置main.js

    import axios from 'axios'
    Vue.prototype.$axios = axios;

    如图:

     三、简单使用示例

    页面加载时执行:

    <template>
        <div class="header">{{title}}</div>
    </template>
    
    <script>
        //当前组件的脚本
        export default{
            // 当前组件的名称
            name:"test", //非必填项,则自动以文件名为主
            data(){
                return {//当前组件中所有的数据
                    
                    title:'猫眼电影'
    
                };
            },methods:{ //当前组件中所有的函数
    
                //普通的方法
                xx:function(){
                    alert("调用普通方法");
                }
    
            },created()
            {
                window.console.log("页面加载完毕之前执行,执行顺序:父组件-子组件");
                this.xx();
    
            },mounted()
            {
                window.console.log("页面加载完毕之前执行,执行顺序:子组件-父组件");
    
            }
        }
    </script>
    
    <style>
        .header{
            height: 1.25rem;
            line-height: 2.5;
            background: #e54847;
            color: #fff;
            text-align: center;
            font-size: 0.5rem;
        }
    </style>

    点击按钮执行:

    <template>
      <div>
        <div v-show="show">HelloWorld</div>
        <button @click="handleClick">Click</button>
        <ul>
          <li v-for="(item,index) of list" :key="index">{{item}}</li>
        </ul>
      </div>
    </template>
    <script>
    export default {
      name: "test",
      data() {
        return {
          show: true,
          list: [1, 2, 3]
        };
      },
      methods: {
        handleClick: function() {
          this.show = !this.show;
        }
      }
    };
    </script>

    异步请求的

     

     代码如下:

    <template>
      <div>
        <div v-show="show">HelloWorld</div>
        <button @click="handleClick">Click</button>
        <ul>
          <li v-for="(item,index) of list" :key="index">{{item}}</li>
        </ul>
      </div>
    </template>
    <script>
    export default {
      name: "test",
      data() {
        return {
          show: true,
          list: [1, 2, 3]
        };
      },
      methods: {
        handleClick: function() {
          
           this.$axios({
                url: 'http://wthrcdn.etouch.cn/weather_mini?citykey=101010100',  // 后台接口
                method: 'get',  // 请求方式
            }).then(response => {  // 请求成功
                window.console.log('请求成功');
                window.console.log(response.data);
                this.course_ctx = response.data;  // 将后台数据赋值给前台变量完成页面渲染
            }).catch(error => {  // 请求失败
                window.console.log('请求失败');
                window.console.log(error);
            })
    
        }
      }
    };
    </script>

     四、路由跳转与参数

    可以使用 this.$router.push(location) 来更改url,完成跳转

     代码如下:

    接受页面:

    <template>
    <div>
        <div>Test2页面</div>
        <div>{{this.$route.params.user}}</div>
        <button @click="write">打印接收的参数</button>
    </div>
    </template>
    <script>
    export default {
        name:"test2",
        data(){
            return {
                status:true
            }
        },
        methods:{
            write(){
                window.console.log(this.$route.params.user);
            }
        }
    }
    </script>
    <style>
    </style>

    点击跳转页面

    <template>
      <div>
        <div v-show="show">HelloWorld</div>
        <button @click="handleClick">Click</button>
        <ul>
          <li v-for="(item,index) of list" :key="index">{{item}}</li>
        </ul>
      </div>
    </template>
    <script>
    export default {
      name: "test",
      data() {
        return {
          show: true,
          list: [1, 2, 3]
        };
      },
      methods: {
        handleClick: function() {
          
     
                //this.$router.push('/test2')
    
                this.$router.push('/test2?user="wise"')    //接受页面 this.$route.query.user 
    
                /*this.$router.push({
                    name:'test2',
                    params:{
                      user:"wise"
                    }
                })*/
    
    
        }
      }
    };
    </script>
  • 相关阅读:
    [编]使用AutoCompleteExtender实现文本框自动匹配
    C#中的泛型
    Adapter模式
    .Net 项目代码风格要求
    Asp.Net Ajax的两种基本开发模式
    .NET框架
    SQL Server文章目录
    【转】prometheus数据上报方式pushgateway
    Operation is not valid due to the current state of the object
    lisp 笔记 闭包
  • 原文地址:https://www.cnblogs.com/fger/p/11984006.html
Copyright © 2020-2023  润新知