Heim >Web-Frontend >js-Tutorial >Detailliertes Beispiel dafür, wie Vue den Tab-Wechseleffekt des Taobao-Bestellstatus imitiert

Detailliertes Beispiel dafür, wie Vue den Tab-Wechseleffekt des Taobao-Bestellstatus imitiert

小云云
小云云Original
2017-12-28 11:46:322909Durchsuche

In diesem Artikel wird hauptsächlich der Tab-Wechseleffekt der Taobao-Bestellstatusimitation vorgestellt. Interessierte Freunde können darauf verweisen.

Ich habe vor ein paar Tagen angefangen, Vue für ein Projekt zu verwenden, und dann habe ich herumgefummelt und eine kleine Kuppel für den Tab-Wechsel im Projekt geschrieben, die den Tab-Wechsel des Taobao-Bestellstatus nachahmt.

HTML-Code:


<p class="navigation">
 //这里是通过循环遍历出来的数据,你需要根据index的值来判断你现在点击的是第几个tab栏导航,同时在js中写一个navChange的方法来把index 传递到就js中来改变tabIndex(这是在初始化时设置的默认index)的值
  <span v-for="(item, index) in navItems" v-touch:tap=" { event: navChange, params: [index] }">
   <em> {{item.text}} </em>   
  </span>
</p>
 //上面的v-touch:tap 是我们自己封装的点击事件指令,跟v-click用法差不多

<p class="content">
 <p class="main">
  //p item中是需要切换的订单数据,for循环遍历的是各种订单状态的集合orderAllItem,然后通过选择的tab值对应的index来判断调用orderAllItem中的第几个数组进行循环遍历
  <p class="item" v-for="item in orderAllItem[tabIndex]">
    <p class="title">
     <span class="id">订单号:{{item.orderId}}</span>
     <span class="status" >{{item.statusName}}</span>
    </p>
    <p class="toys" v-touch:tap="{ event: goToDetail, params: [item.orderId]}">
     <p class="toy" v-for="toy in item.toys">
      <img class="toyImg" :src="toy.image"/>
      <p class="area">
       <em class="name">{{toy.toyName}}</em>
       <span class="age">适合年龄:{{toy.ageRange}}</span
      </p>
     </p>
    </p>
   </p>
  </p>
</p>

JS-Code


var _default = (function(){
 var navs = [
  {
   &#39;text&#39;: &#39;全部订单&#39;, 
  },
  {
   &#39;text&#39;: &#39;待付款&#39;,
  },
  {
   &#39;text&#39;: &#39;待收货&#39;,
  },   
  {
   &#39;text&#39;: &#39;待归还&#39;,
  },
  {
   &#39;text&#39;: &#39;已完成&#39;,
  }
 ];
 var orders= [
  //因为没有合适的数据来源,所以假装这里就是从后端请求的所有的订单集合,在下边data中你需要吧你分类的订单根据状态进行分类。
 ];
 return {
  name: &#39;index&#39;,
  mounted: function(){

  },
  destoryed: function(){

  },
  data: function(){
   //待付款
   var paymentsItem = [];
   //待收货
   var receiptsItem = [];
   //待归还
   var returnsItem = [];
   //已完成
   var completesItem = [];

   //把所有不同状态的订单通过if判断push到相对应的订单状态集合中。
   orders.forEach(function(order){
    if(order.status == 0){
     paymentsItem.push(order);
    };
    if(order.status == 3){
     receiptsItem.push(order);
    };
    if(order.status == 5){
     returnsItem.push(order);
    };
    if(order.status == 13){
     completesItem.push(order);
    }
   });
   //设置一个空数组,把所有状态下的订单集合放到空数组中,从0-5的顺序按照你的自己设置的tab切换的内容0-5的顺序对应排列,
   var orderAll = [ orders, paymentsItem, receiptsItem, returnsItem, completesItem];
   console.log(orderAll);
   return {
    navItems : navs,
    //全部订单分类的集合
    orderAllItem : orderAll,
    //设置
    tabIndex : 0,
   };
  },
  methods: {
   navChange: function (e, index){

    this.tabIndex = index;
//    console.log(this.tabIndex)
   }
  }
 }
})();

export default _default;

Verwandte Empfehlungen:

Vue.js-Beispielfreigabe einer Nachahmung der Taobao-Checkout-Seite

JavaScript-Nachahmung eines Taobao-Beispiels für die Implementierung eines Lupeneffekts

Javascript-Kleinschreibung: Imitiert die Benutzereingabe im Taobao-Suchfeld

Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel dafür, wie Vue den Tab-Wechseleffekt des Taobao-Bestellstatus imitiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn