123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <template>
- <div class="row">
- <!-- 展示用户列表 -->
- <div v-show="info.users.length" class="card" v-for="user in info.users" :key="user.login">
- <a :href="user.html_url" target="_blank">
- <img
- :src="user.avatar_url"
- style="width: 100px"
- />
- </a>
- <p class="card-text">{{ user.login }}</p>
- </div>
- <!-- 展示欢迎词 -->
- <h1 v-show="info.isFirst">欢迎使用!</h1>
- <!-- 展示加载中... -->
- <h1 v-show="info.isLoading">加载中...</h1>
- <!-- 展示错误信息 -->
- <h1 v-show="info.errMsg">{{ info.errMsg }}</h1>
- </div>
- </template>
- <script>
- export default {
- name: "List",
- data(){
- return{
- info:{
- isFirst:true,
- isLoading:false,
- errMsg:'',
- users:[]
- }
- }
- },
- mounted(){
- this.$bus.$on('updataListData',(dataObj) => {
- console.log(dataObj)
- this.info = {...this.info,...dataObj}
- // 通过字面量的形式合并对象,也就是对比前后两个对象中的属性,
- //重名的属性就以后面对象的数据为准,后面对象没有的就维持不变
- })
- }
- };
- </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>
|