Edit in JSFiddle

let vm = new Vue ({
	el: '#app',
  data: {
  	title: 'Simple TodoList',
    inputNewTodo: '',
    todos: [],
    doneList: [],
  },
  
  methods: {
  	addNewList: function() {
    	if(this.inputNewTodo === '') {
    		alert('請輸入文字')
    	} else {
      	this.todos.push(this.inputNewTodo);
        this.inputNewTodo = ''
      }
    },
    deleteAllTodos: function() {
    	this.todos = [];
      this.doneList = []
    }
  },
  computed: {
  	doneListToString: function() {
    	return this.doneList.join(', ')
    },
    countTodos: function() {
    	return this.todos.length
    }
  },
  filters: {
  	doneListFormat: (str)=> {
    	return `| ${str} |`
    }
  },
  /* watch: {
    doneList: function() {
      alert('Good Job!')
    }
  } */
})
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div id="app">
    <h1>{{ title }}</h1>
    <hr>
    <div class="inputNewTodo">
      <label>輸入待辦事項:
        <input type="text" 
          name="inputNewTodo" 
          placeholder="請輸入事項"
          v-model="inputNewTodo"
          @keyup.enter="addNewList"
        >
      </label>
      <button @click="addNewList">新增</button>
    </div>
    
    <div class="showNewTodo">
      <p v-if="inputNewTodo!=''">
        你新增的待辦事項:{{ inputNewTodo }}
      </p>
      
      <p v-else>
        尚未新增待辦事項。
      </p>
    </div>
    
    <div class="showTodos">
      <h2>待辦事項:</h2>
      <p>一共有 {{ countTodos }} 項</p>
      <label v-for="item in todos">
      <input 
        type="checkbox"
        :value="item"
        v-model="doneList"
      >
        {{ item | doneListFormat }}
      </label>
    </div>
    
    <div class="showDoneList">
      <h2>已完成事項:</h2>
      <p 
        v-if="doneList!=''"
        class="done"
      >已辦完:{{ doneListToString }}</p>
      <p v-else>尚未完成任何事項</p>
    </div>
    <button @click="deleteAllTodos">刪除所有事項</button>
    
  </div>
</body>
</html>
.done {
  color: green
}

.showTodos {
  display: flex;
  flex-direction: column
}