日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

從頭再學Vue的指令

 

1. 指令是什么?

指令(Directives) 是帶有 v- 前綴的特殊 attribute 。指令的職責是,當表達式的值改變時,將其產生的連帶影響,響應式地作用于 DOM 。

常見的指令有:v-model, v-if, v-for 等。

2. 指令參數

一個指令能夠接受一個 “參數” ,在指令名稱之后以冒號表示。如:

<p v-if="seen">現在你看到我了</p>

v-if 指令是用來控制 DOM 節點的插入或移除,在示例中 seen 就是 v-if 指令的參數。v-if 根據參數 seen 的值的 true/false 來插入或移除 <p> 節點。

當然指令的參數不是必須的。

3. 內置指令

在Vue中提供了非常多的內置指令:

  • v-text
  • v-html
  • v-show
  • v-if
  • v-else
  • v-else-if
  • v-for
  • v-on
  • v-bind
  • v-model
  • v-slot
  • v-pre
  • v-cloak
  • v-once

這次指令在日常的開發工作中大部分是經常用到的。

4. 自定義指令

在官方文檔中,指令自定義給出的示例是 v-focus , 通過此自定義指令,實現元素的聚焦。

// 注冊一個全局自定義指令 `v-focus`
Vue.directive('focus', {
  // 當被綁定的元素插入到 DOM 中時……
  inserted: function (el) {
    // 聚焦元素
    el.focus()
  }
})

指令的注冊方式分為兩種:

  • 全局注冊
  • 局部注冊

4.1. 全局注冊

全局注冊指令,可以在當前項目的任何組件中直接使用。上面的示例中,就是采用全局注冊的方式。

4.2. 局部注冊

局部注冊指令,指令注冊后,只能在當前組件中使用,在其他組件中無法使用該指令。

在組件中,提供有 directives 選項,該選項用來注冊局部指令:

directives: {
  focus: {
    // 指令的定義
    inserted: function (el) {
      el.focus()
    }
  }
}

4.3. 使用

注冊完組件后,我們就可以在DOM中進行使用該指令:

<input v-focus>

需要注意的是,我們注冊指令的時候是使用的 focus , 在使用指令時需要增加 v- 前綴。

5. 鉤子函數

在上面的自定義示例中,可以看到 inserted屬性,在這里 inserted 稱為鉤子函數。

在Vue中,指令定義對象提供了如下幾個鉤子函數

  • bind :只調用一次,指令第一次綁定到元素時調用。在這里可以進行一次性的初始化設置。
  • inserted :被綁定元素插入父節點時調用(僅保證父節點存在,但不一定已被插入文檔中)。
  • update:所在組件的VNode更新時調用,但是可能發生在其VNode更新之前。指令的值可能發生了改變,也可能沒有。
  • componentUpdated :指令所在組件的 VNode 及其子 VNode 全部更新后調用。
  • unbind :只調用一次,指令與元素解綁時調用。

鉤子函數提供了固定的參數,詳細見官網:鉤子函數參數

6. Vue VS Angular

在 Angular 中也有指令,不過 Angular 的指令似乎比 Vue 的指令更強大。

在 Angular 中,指令可以有多個輸入參數,指令的參數可以和組件共用。

7. 總結

在多數的項目開發過程中,Vue 內置的指令就基本上可以滿足需求。在進行一些 UI 組件框架設計時,使用到自定義指令的機會比較多,如 Element UI 中就是用到了自定義指令。

指令是 Vue 的一個重要特性,理解了其作用才能更好的使用。


參考資料

  • Vue官網
  • Angular官網

公眾號:JAVA碼農

分享到:
標簽:Vue
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定