自定義指令(directive指令)
我們還可以通過 `Vue` 提供的方法來自定義指令
註冊指令
`vue` 提供了兩種指令註冊方式
- 全局指令
- 局部指令
全局指令
註冊在外部
局部指令
註冊在組件內部
在使用指令的時候,需要使用 `v-指令名稱` 的方式來調用
ref
屬性,vue提供的一種用於獲取標籤(組件)實例對象的簡便方式
指令生命週期(鉤子函數)
輸入框光標案例:
輸入框自動獲得焦點
點擊按鈕後再獲取焦點
拖拽功能案例:
.limit(修飾符,限定範圍)
事件
組件的 `methods` 選項(方法集)
在組件選項中,提供了一個 `methods` 選項,用來存放組件中使用的函數方法,且存放在 `methods` 中的函數方法可以通過
組件實例(this)進行訪問
通過內聯方式綁定事件處理函數
事件綁定函數中的 `this` 指向組件實例
事件綁定函數中的第一個參數默認爲 `event` 對象
也可以在事件綁定中直接調用函數(並不會立即執行,也是通過事件觸發執行的)
事件對象需要手動傳入,名稱爲 `$event`
事件修飾符
`vue` 還提供了許多按鍵修飾符
computed
在實際的應用中,我們會有一些原始數據,同時在應用中又會有一些數據是根據某些原始數據派生出來的,針對這樣的一種情況,
`vue` 定義了一個專門用來處理這種派生數據的選項:`computed`
1.計算屬性類似 `getter` 和 `setter` ,當訪問某個計算屬性的時候,就會調用 `computed` 中同名的函數,函數的返回值將作爲該計 算屬性的值
2.計算屬性的值依賴計算函數中依賴的其它響應式數據
3.計算屬性的值可以緩存,如果依賴的其它響應式數據沒有發生變化,但多次訪問該計算屬性,得到結果是最近一次變化產生的值
(相對於調用方法得到結果在某些時候性能要好一些)
簡寫形式,get、set變體
獲取時間案例
男、女、全選
計算屬性的 `getter` 與 `setter`
默認情況下,計算屬性函數是一個 `getter` 函數,如果計算屬性只有 get 需求,則可以簡寫
watch
有的時候,我們需要的派生數據是通過異步的方式處理的,這個時候,計算屬性就不太好用了(不能處理異步)。
我們可以使用另外一個選項:`watch`
不支持promise
延遲輸入用watch:
多層監聽
對於多層數據的監聽,可以使用字符串+點語法
深度監聽
默認情況下,`watch` 只對當前指定的值進行一層監聽,如果需要對對象進行深度監聽
過濾器
註冊過濾器
全局過濾器
局部過濾器
案例: