iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0
Vue.js

完成_個人健康習慣追蹤相關功能網站系列 第 5

任務刪除功能(按下刪除鍵 → 移除任務)

  • 分享至 

  • xImage
  •  

昨天 Day 4,我把任務清單加上了 勾選完成 的能力:切換 checkbox 後,任務會出現刪除線與淡色背景,狀態一目了然,一眼就懂。今天 Day 5,我再補上大家最常用,也最直覺的 刪除功能:點一下垃圾桶,指定任務就會從清單中移除。雖然看起來只是多一顆按鈕,背後其實練到的是「子元件事件上拋 → 父元件更新資料 → Vue 重新渲染」這條最重要的資料流。

所以今日目標是在每筆任務右側加入 刪除按鈕(🗑️),點擊刪除後,該任務會立刻從清單消失,與 Day 4 的勾選功能互不影響,將新增、勾選、刪除 三大功能做齊全。

改動總覽(類似 commit 訊息)
1.App.vue
a.新增 deleteTask(id),用 filter 產生「移除目標任務後」的新陣列。
b.在 <TaskList …> 綁定 @delete-task="deleteTask"。

2.TaskList.vue
a.defineEmits 加入 'delete-task'。
b.每一列任務加一顆垃圾桶按鈕,點擊時 emit('delete-task', task.id) 上拋給父層。
c.(沿用 Day 4 的完成樣式:刪除線 + 淡色背景)

子元件只負責把「意圖」用事件上拋,真正的資料修改留在父元件,畫面更新則交給 Vue 的反應式系統自動完成。

實作(只看這三段就夠了!)

  1. App.vue:一行刪除邏輯+事件綁定(節錄):用 filter 保留 id 不相等的項目,等於移除被點擊那筆。重新指派整個陣列,可讀、好除錯,也能確保觸發更新。
    https://ithelp.ithome.com.tw/upload/images/20250919/20178068cY37k10veW.png
    2).App.vue:在 綁定事件
    https://ithelp.ithome.com.tw/upload/images/20250919/20178068X80IgTryRC.png
  2. TaskList.vue:宣告事件 + 刪除按鈕
    https://ithelp.ithome.com.tw/upload/images/20250919/20178068MUHCfcYS31.png
    上為宣告事件;下為刪除按鈕!
    https://ithelp.ithome.com.tw/upload/images/20250919/201780682rozatzlWU.png
    今天最終的畫面如下:
    https://ithelp.ithome.com.tw/upload/images/20250919/20178068zKoxK1b5Gp.png
    可以看見每筆任務右側都有一個小垃圾桶樣子的圖示提示刪除按鈕,若是點擊垃圾桶,則該任務會立即從畫面中消失, 即使是新增的任務也能被刪除,另外,勾選/取消的功能還是正常的,與刪除功能不會相互干擾!
    今天把 刪除功能 補上後,待辦清單的核心操作正式成形,新增、勾選、刪除 一次到位!今天的學習,使我更熟悉了 Vue 的資料流,期待明天的進度和成果!

上一篇
任務勾選功能(checkbox 切換完成/未完成狀態,加入樣式)
系列文
完成_個人健康習慣追蹤相關功能網站5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言