1. 程式人生 > >vue一些容易混淆的名詞

vue一些容易混淆的名詞

一、計算屬性computed和偵聽屬性watch

1.計算屬性computed
  • 計算屬性是基於它們的依賴進行快取的,而呼叫方法總是每次重新計算。如果不需要快取,就使用方法。
  • 當你有一些資料需要隨著其它資料變動而變動時,通常更好的做法是使用計算屬性而不是命令式的 watch 回撥。
2.偵聽屬性watch
  • 當需要在資料變化時執行非同步開銷較大的操作時,這個方式是最有用的。

二、v-if和v-show

1.v-if

  • v-if是真正的條件渲染,它會確保在切換過程中,條件塊內的事件監聽器和子元件適當的被銷燬和重建
  • v-if是惰性的:如過在初始渲染時條件為假,則什麼也不做——直到條件第一次變為真時,才會開始渲染條件塊
  • 適用於在執行時條件很少改變
2.v-show
  • 不管初始條件是什麼,元素總是會被渲染,並且只是簡單的基於css進行切換(display)
  • 適用於頻繁的切換

三、v-for

1.v-for(陣列)
  • (item, index) in items 可選的第二個引數為當前項的索引
2.v-for(物件)
  • <div v-for="(value, key, index) in object">可以提供第二個的引數為鍵名
  • 第三個引數為索引
<div v-for="item in items" :key="item.id">建議儘可能在使用 v-for 時提供 key
,除非遍歷輸出的 DOM 內容非常簡單,或者是刻意依賴預設行為以獲取效能上的提升。

四、陣列更新檢測

1.以下變動不能觸發對應元素更新
  • 當你利用索引直接設定一個項時,例如:vm.items[indexOfItem] = newValue  替代方法:Vue.set(vm.items, indexOfItem, newValue) 或  vm.$set(vm.items, indexOfItem, newValue)
  • 當你修改陣列的長度時,例如:vm.items.length = newLength 替代方法:vm.items.splice(indexOfItem, 1, newValue)