今天主要替記帳 App 加入批次操作功能,讓使用者可以一次選取多筆資料,進行刪除或清空。
批次操作介面優化
我先調整 ExpenseList 的操作列,將「全選」放在左側,「一鍵清空」和「刪除選取」放在右側,讓整個版面更符合我的理想。
這次使用 Flexbox:
再搭配:
讓右側的按鈕群組自動靠到最右邊。
在調整這些的過程中,我更了解 space-between 和 margin-left: auto 在 Flexbox 中的實際作用,而不只是記住寫法。
實作「全選」功能
批次操作最重要的部分就是判斷目前顯示的資料是不是全部被選取。
這裡使用 every():
every() 會檢查陣列中的每一個項目是否都符合條件。
另外,我特別讓「全選」只作用在目前搜尋或篩選後的 visibleItems,也就是只顯示在版面上的物件,而不是整個記帳資料。這樣使用者搜尋某個分類後按下全選,就只會選取目前看到的項目。
重新分清楚 map、filter、every
透過 AI 出題複習陣列方法。
我原本把 every() 答成 map(),才重新了解、認識這三者的差異:
這邊貼上成果:
總結:
今天完成了批次選取、批次刪除與一鍵清空的操作優化,也學到: