Rendering Lists in VueJs

A demo of rendering lists in VueJs using the v-for directive - http://coligo.io

HTML

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.2/css/uikit.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.2.6/vue.min.js"></script>
<div id="vue-instance">
  <transition-group tag="div" name="fade" class="uk-grid">
    <div class="uk-width-1-2" v-for="item in thumbs" :key="item.id">
      <div class="item">
        <i class="fa" :class="item.icon" aria-hidden="true"></i>
        <h3>{{item.name}}</h3>
      </div>      
    </div>
  </transition-group>
</div>

CSS

.item {
  text-align: center;
  font-size: 20px;
}

/* Animations */
.fade-enter-active, .fade-leave-active {
  transition: opacity .5s
}
.fade-enter, .fade-leave-to /* .fade-leave-active in <2.1.8 */ {
  opacity: 0
}

JavaScript

var vm = new Vue({
  el: '#vue-instance',
  data: {
  	index: 0,
    thumbs: [],
    thumbsData: [
      {id: 0, name: 'car', icon: 'fa-car'},
      {id: 1, name: 'university', icon: 'fa-university'},
      {id: 2, name: 'bicycle', icon: 'fa-bicycle'},
      {id: 3, name: 'briefcase', icon: 'fa-briefcase'},
      {id: 4, name: 'calculator', icon: 'fa-calculator'},
      {id: 5, name: 'calendar', icon: 'fa-calendar'}
    ]
  },
  methods: {
        loadFlipper: function () {               	
        	this.thumbs = this.thumbsData.slice(0, 2);
        	this.index = 2;
        	this.animateFlipper(-1);
      },      
      animateFlipper: function (i) {
        if (i > -1) {
          var newThumbs = this.thumbs.slice();
          newThumbs[i] = this.thumbsData.slice(this.index, this.index + 1)[0];
          this.thumbs = newThumbs;
          this.index = (this.index + 1) === this.thumbsData.length ? 0 : (this.index + 1);
        }

        i = i === 1 ? 0 : (i + 1);
        //call animate method each after 8 seconds to update the next icon/title
        var _that = this;
        setTimeout(function() {
          _that.animateFlipper(i)
        }, 2000);              
    }
  },
  created: function () {
      //initiate change of thumbs
      this.loadFlipper()
  }  
});