用vue中的axios 做的小案例 模仿QQ

模仿联系人页:


81.png
  html 代码:

        <div class="w">
            <div class="mulu">
               <router-link to="/xiaoxi" class="one">消息</router-link>
               <router-link to="/lianxi" class="two">联系人</router-link>
               <router-link to="/dongtai" class="three">动态</router-link>
           </div>
  //  盛放数据
             <router-view></router-view>
     </div>

  js 代码:
  
  // 链接js
       <script src="js/vue.js"></script>
      <script src="js/vue-router.js"></script>
      <script src="js/axios.js"></script>
      <script>
        // 创建组件
           var about={
        template:`
        <div class="xiaox">
            <ul class="list">
                <li><router-link to='/lianxi/regist'>好友</router-link></li>
                <li><router-link to='/lianxi/lon'>群聊</router-link></li>
                <span><img src="./img/1.gif"></span>
            </ul>
            <router-view></router-view>
        </div>
        `
    }
//   好友
     var reg={
        template:`
          <div class="pengyou">
           <ul class='concat'>
              <li  @click="chg(index)" v-for="(value,index) in concater">
                 <b><img src="./img/2.gif"></b>
                 <span>{{value.group}}</span>
                 <span>{{value.count}}</span>
                 <ul class="con" v-show="concater[index].flag">
                   <li>
                     <img :src='value.img'>
                    <div class="lis">
                        <p>{{value.title}}</p>
                        <p>{{value.txt}}</p>
                    </div>
                   </li>
                 </ul>
              </li>
           </ul>
        </div>      
        `,
         methods:{
             chg:function(index){
            
         this.concater[index].flag=!this.concater[index].flag
       }
   },
       data:function(){
           return{
               concater:null
            
           }
       },
       mounted:function(){
          var that=this;
        axios({
             method:"get",
             url:"contan.json"
         }).then(function(resp){
             console.log(resp.data)
             that.concater=resp.data; 
         }).catch(function(err){
             console.log(err)
         })
       }
   }
 //   群聊
    var gin={
        template:`
           <div class="group">
           <ul class='concat'>
              <li  @click="add(index)" v-for="(v,index) in conca">
                 <b><img src="./img/2.gif"></b>
                 <span>{{v.group}}</span>
        
                      <ul class="main" v-show="conca[index].flag">
                   <li>
                  
                        <img :src='v.imga'>
                        <p>{{v.title}}</p>
                        <p>{{v.txt}}</p>
                   
                   </li>
            
                 </ul>
                </li>
</ul>
           </div>
    `,
       methods:{
       add:function(index){
            
         this.conca[index].flag=!this.conca[index].flag
       }
   },
       data:function(){
           return{
               conca:null
            
           }
       },
       mounted:function(){
          var that=this;
        axios({
             method:"get",
             url:"qun.json"
         }).then(function(resp){
             console.log(resp.data)
             that.conca=resp.data; 
         }).catch(function(err){
             console.log(err)
         })
       }
   }
    
    //  配置路由
       const routes=[
        {path:'/',component:about},
        {path:'/xiaoxi',component:Index},
        {
            path:'/lianxi',
            component:about,
             children:[
                {path:'/',component:reg},
                {path:'regist',component:reg},
                {path:'lon',component:gin}
            ]
        },
        {path:'/dongtai',component:fabiao}
    ]
    
    //  创建路由实例
    const router=new VueRouter({
        routes:routes,
         linkActiveClass:"active"
    })
    
    //  时间
      Vue.filter('date',function(data){
       return data.getHours()+":"+data.getMinutes();
   })
   
  
    new Vue({
        el:'.w',
        router:router
    })
</script>



qun.json:

  [
      {
   "group":"我的群聊",
   "imga":"./img/23.jpg",
    "title":"单纯DE我们",
    "txt":"8:11",
     "flag":true
      }
]

contan.json:
  
  [
    {
    "group":"新朋友",
     "flag":false
    },
   {
    "group":"我的设备",
    "count":"1/2",
    "img":"img/53.jpg",
    "title":"我的Android手机",
    "txt":"上次登录:2018-9-28",
     "flag":false
    },
     {
    "group":"始于颜值",
    "count":"84/115",
    "img":"img/641.jpg",
    "title":"梁萌",
    "txt":"明天放假真开心",
     "flag":true
    }
]

模拟消息页

8fb43b88-1d97-4eb2-ad91-528556abdb83.png

js:

          //  消息

  var yanzhi={
        template:`
         <div class="xiaox">
            <div class="xinxi">
                <ul>
                    <li>
                    <img src:"/img/23">
                    <p class="p1">{{value.name}}</p>
                    <p class="p2">{{value.liao}}</p>
                   
                </li>
                </ul>
            </div>
        </div>
    `
    }

  qq.json:

    [
{
    "img":"./img/14.jpg",
    "name":"纪美",
    "liao":"干嘛呢?"
},
{
    "img":"./img/53.jpg",
    "name":"大梨",
    "liao":"要不要听我的演唱会?"
},
{
    "img":"./img/8.jpg",
    "name":"二哈",
    "liao":"我头像是我,怎么样好不好看"
},
{
    "img":"./img/641.jpg",
    "name":"梁萌",
    "liao":"1111"
},
{
    "img":"./img/23.jpg",
    "name":"你宛如一个智障",
    "liao":"我好像傻了"
}
]

模仿 动态页:


0c5c961e-b550-4be7-9317-b002437c5936.png
js:

    var fabiao={
        template:`
        <div class="xiaox">
            <ul class="nav">
                <li>
                    <a href="#">
                        <img src="./img/3.jpg">
                    </a>
                </li>
                <li>
                    <a href="#">
                        <img src="./img/4.jpg">
                    </a>
                </li>
                <li><a href="#"><img src="./img/5.jpg"></a></li>
                <li><a href="#"><img src="./img/6.jpg"></a></li>
            </ul>
        </div>
        `
    }

css 样式:

  *{
margin: 0;
padding: 0;
list-style: none;
}
a{
    text-decoration: none;
}
.active{
     border-bottom: 2px solid #818186;
    color: #585858;
}
.w{
      width:280px;
      height:630px;
      margin: 0 auto;
     background: url(img/1.jpg)no-repeat -15px -102px;
    background-size: 121% 110%;;
    box-shadow: 0px 1px 7px 1px #969595;
  }
  .mulu{
      width: 100%;
      overflow: hidden;
      border-bottom: 1px solid #f4f4f4;
    }
.one,.two,.three{
    width: 65px;
    height: 40px;
    display: block;
    margin-right:20px; 
    float: left;
    color: #818185;
    font-size: 16px;
    text-align: center;
    line-height: 40px;
    padding: 0 4px;
  }

.list{
  margin-top: 10px;
  overflow: hidden;
  }
.list li a{
    float: left;
    font-size: 15px;
    color: #747479;
    padding: 5px 10px;
    margin:0 7px;

}
 .list span{
       float: right;
      margin-right: 10px;
      line-height: 35px;
}
.list span img{
  width: 42px;
  height: 22px;
}
.pengyou ul li{
   padding: 10px;
    width:93%;
}
.pengyou ul li span{
    font-size: 14px;
    color: #000;

}
.pengyou li:hover{
       background: rgba(247, 247, 247, 0.18);
}
.pengyou p span{
    margin-right: 10px;
      margin-left: 10px;
}
.concat{
    width: 100%;
}
.con{
    overflow: hidden;
}
.con li img{
    width:40px;
    height: 40px;
    border-radius: 50%;
    float: left;
}
.lis{
      overflow: hidden;
      float: left;
     margin-left: 15px;
}
.lis p:first-child{
    font-size: 14px;
}
.lis p:nth-child(2){
    font-size: 12px;
    color: #585858;
}
.xiaox{
    width: 100%;
}
.xiaox ul{
    overflow: hidden;
}
.xiaox ul li{
float: left;
}
.nav li a{
    display: block;
     height: 136px;
    width: 140px;
}
.xinxi{
    width:100%;
}
.xinxi ul{
    margin-top: 20px;
  }
.xinxi ul li{
    padding-left: 15px;
    height: 60px;
    width: 265px;
    position: relative;
}

.xinxi ul li img{
    width: 40px;
    height: 40px;
    position: absolute;
    border-radius: 50%;
    top: 10px;
}
.xinxi ul li:hover{
  background: rgba(130, 128, 128, 0.18);
}
.p1{
    color: #000;
    position: absolute;
    left: 70px;
    font-size: 15px;
    font-family: '微软雅黑';
    top: 10px;
}
.xinxi ul li:nth-child(3) .p1{
  color: #ff0000;
}
.xinxi ul li:last-child .p1{
    color: #ff0000;
}
.p2{
    color: #7e7d7d;
    position: absolute;
    left: 70px;
    top:30px;
    font-size: 12px;
    }
    .xinxi ul li span{
    position: absolute;
    right: 10px;
top: 10px;
  font-size: 12px;
color: #7f7f7f;
}

.group{
 margin-top:10px; 
  margin-left:20px;
  margin-right:20px;
}
.group span{
    margin-right:10px;
        font-size:14px; 
      color: #000;
}
.main{
    overflow: hidden;
}
  .concat li{
      width: 100%;
  }
.main li img{
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: block;
    float: left;
}
.main li p{
    font-size: 16px;
    float: left;
    margin-left: 10px;
    line-height: 40px;
}
.main li p:last-child{
    font-size: 12px;
    color: #7f7f7f;
    float: right;
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容

  • 最近考试老是考不好,从以前的好成绩一落千丈,爸爸妈妈都开始担心,爸爸好像最近在工作上不顺心,也经常喝酒,发...
    zlz爱赤阅读 188评论 0 0
  • 想来想去,人生中的第一封情书,决定写给你。 十一年了,从我的诞生的那一刻,就被一种名为爱的魔法所保护着,那种魔法的...
    团子妹妹呐阅读 584评论 6 16