Vue filter this 關鍵字用于指代當前組件實例,其常見用法為在組件內部的方法中使用 this 調用實例的屬性和方法。
下面是一個簡單的實例,使用 filter 過濾數組中的元素,其中 this 關鍵字用于指代當前組件實例:
// template <div v-for="item in filterItems" :key="item.id"> {{ item.name }} </div> // script export default { data() { return { items: [ { id: 1, name: 'apple', isFruit: true }, { id: 2, name: 'beef', isFruit: false }, { id: 3, name: 'banana', isFruit: true }, { id: 4, name: 'pork', isFruit: false }, ] }; }, methods: { filterItems() { return this.items.filter(item =>item.isFruit); } } };
通過調用 this.items 獲取組件實例的 data 中的 items 數組,通過 filter 過濾出 isFruit 為 true 的元素。
需要注意的是,如果在箭頭函數中使用 this 關鍵字時,需要綁定當前組件實例,因為箭頭函數內部的 this 指向不能被更改:
// script export default { methods: { handleClick: _.debounce(() =>{ console.log(this.msg); }, 500) } };
上述代碼中使用了 debounce 函數來防抖處理點擊事件,箭頭函數內部將 this 關鍵字指向了外部作用域,需要使用 lodash 的方法將 this 綁定到當前組件實例上。