2019年1月29日 星期二

(ToDo List專案)S3L22-製作頁籤分類的功能


目標:
  • 點選checkbox後,出現刪除線效果
  • 實作上方tag的過濾功能




動態綁定class屬性到一個物件上
此物件的key為class名稱,value為判斷式(true/false)

先測試completed為true的情況






判斷式根據item.completed決定是否套用completed樣式到<label>

打勾時,會先透過v-model切換completed為true

接著導致completed樣式被套用




[點選頁籤進行過濾]

  • 點選某一頁籤時,會有active樣式套用
  • 同時進行條件filter

原本是全部的標籤上有active class
 我們想要做到點選某一個tab時,就會為某個tab加上active class

因為vue是資料驅動畫面
先於data加上一個visibility:'all'

接著讓active樣式根據visibility的條件式來決定是否套用
:class="{active:visibility==='all'}"

上面意思是如果visibility==='all'就將active樣式套用到<li>內的<a>上



[觀念]
  • 由資料驅動畫面
  • class的套用可由資料的條件式來決定
  • event可改變資料,進而render出不同畫面



接著要處理filter的部分=>用computed來做

點選不同tab時,會更改visibility,根據此由filteredTodos去做計算

computed屬性內的method,在使用時不用加上()就會自動呼叫





[computed property]
 將brand及product計算後回傳新的結果
(brand跟product若有改變,則會重新計算)

computed的結果會cache,所以需要重複access時會比使用methods有效率



範例
 呼叫method要加上()


















沒有留言:

張貼留言