SOURCE

console 命令行工具 X clear

                    
>
console
var i = 1; 
Vue.component('user', {
  props: ['user', 'users'],
  template: '<li @click="click">{{ user.text }}</li>',
  methods: {
     click: function() {
        this.users.splice(this.users.indexOf(this.user), 1)
     }
   }
})
 Vue.component('add', {
   props: ['users'],
   template: '<li @click="click">+</li>',
   methods: {
     click: function() {
       this.users.push({text: "用户" + i++})
     }
   }
})

Vue.component('level', {
   props: ['users', 'levels'],
   template: '<ol><user v-for="each in users" v-bind:user="each" v-bind:users="users"></user><add v-bind:users="users"></add></ol>',
   watch: {
     users: function() {
       var isLast = this.levels[this.levels.length - 1] == this.users
       if (isLast) {
         return
       }
       if (this.users.length == 0) {
         this.levels.splice(this.levels.indexOf(this.users), 1)
       }
     },
     levels: function() {
        this.levels[this.levels.length - 1].length != 0
        && this.levels.push([])
     }
   }
})

var app7 = new Vue({
  el: '#app-7',
  data: {
    levels: [
      [ { text: '用户1' },  { text: '用户2' }],
      [ { text: '用户3' },  { text: '用户4' }],
    	[]
    ]
  }
})
<div id="app-7">
  <level v-for="users in levels" v-bind:users="users" v-bind:levels="levels">
  </level>
</div>