axios请求
效果图

安装axios
npm i axios
search组件:
<template> <div class="search"> <section class="jumbotron"> <h3 class="jumbotron-heading">Search Github Users</h3> <div> <input type="text" placeholder="enter the name you search" v-model="inputWord" />  <button @click="search">Search</button> </div> </section> </div> </template> <script> import axios from 'axios'; export default { name: "Search", data(){ return{ inputWord:'' } }, methods:{ search(){ //请求前更新List的数据 this.$bus.$emit('getUsers',{isFirst:false,isLoading:true,errmsg:'',users:[]}) axios.get(`https://api.github.com/search/users?q=${this.inputWord}`).then( response =>{ //console.log('请求成功',response.data.items); this.$bus.$emit('getUsers',{isLoading:false,errmsg:'',users:response.data.items}) }, error =>{ console.log('获取失败',error.message) //用户要清空 this.$bus.$emit('getUsers',{isLoading:false,errmsg:error.message,users:[]}) } ) } } }; </script>
list组件:
<template> <div class="list"> <!--展示用户列表--> <div class="row"> <div class="card" v-for="item in info.users" :key="item.login"> <a :href="item.html_url" target="_blank"> <img :src="item.avatar_url" style="width: 100px" /> </a> <p class="card-text">{{item.login}}</p> </div> </div> <!--展示欢迎词--> <h1 v-show="info.isFirst">欢迎...........</h1> <!--展示加载中--> <h2 v-show="info.isLoading">loading.....</h2> <!--展示错误--> <h2 v-show="info.errmsg">{{info.errmsg}}</h2> </div> </template> <script> export default { name: "List", data(){ return{ info:{ users:[], isFirst:true, isLoading:false, errmsg:"" } } }, mounted(){ this.$bus.$on('getUsers',(dataObj)=>{ //对象合并 this.info = {...this.info,...dataObj} }) }, beforeDestroy(){ this.$bus.$off('getUsers') } }; </script> <style scoped> .album { min-height: 50rem; /* Can be removed; just added for demo purposes */ padding-top: 3rem; padding-bottom: 3rem; background-color: #f7f7f7; } .card { float: left; width: 33.333%; padding: .75rem; margin-bottom: 2rem; border: 1px solid #efefef; text-align: center; } .card > img { margin-bottom: .75rem; border-radius: 100px; } .card-text { font-size: 85%; } </style>
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号