1. 程式人生 > 實用技巧 >面向物件的學生管理系統(Python實現)

面向物件的學生管理系統(Python實現)

全域性指令

   使用directive註冊全域性指令,我們自定義了指令v-focus:、

<div id="app">
    <p>頁面載入時,input 元素自動獲取焦點:</p>
    <input v-focus>
</div>
 
<script>
// 註冊一個全域性自定義指令 v-focus
Vue.directive('focus', {
  // 當繫結元素插入到 DOM 中。
  inserted: function (el) {
    // 聚焦元素
    el.focus()
  }
})
// 建立根例項
new Vue({
  el: '#app'
})
</script>

區域性指令

   在Vue例項中使用directives選項來註冊區域性指令,這樣指令只能在這個例項中使用:

<div id="app">
  <p>頁面載入時,input 元素自動獲取焦點:</p>
  <input v-focus>
</div>
 
<script>
// 建立根例項
new Vue({
  el: '#app',
  directives: {
    // 註冊一個區域性的自定義指令 v-focus
    focus: {
      // 指令的定義
      inserted: function (el) {
        // 聚焦元素
        el.focus()
      }
    }
  }
})
</script>

指令鉤子

   在一個指令中,你可以指定下面的鉤子函式,如上述兩個示例中都具有inserted函式。

鉤子函式描述
bind() 只調用一次,指令第一次繫結到元素時呼叫,用這個鉤子函式可以定義一個在繫結時執行一次的初始化動作
inserted() 被繫結元素插入父節點時呼叫(父節點存在即可呼叫,不必存在於 document 中)
update() 被繫結元素所在的模板更新時呼叫,而不論繫結值是否變化。通過比較更新前後的繫結值,可以忽略不必要的模板更新
componentUpdated() 被繫結元素所在模板完成一次更新週期時呼叫
unbind() 只調用一次, 指令與元素解綁時呼叫

鉤子引數

   每個鉤子函式都有兩個常用引數,分別是elbinding

   el代表DOM節點本身,即元素。

   binding是一個指令物件,含有如下屬性:

屬性描述
name 指令名,不包含v-字首
value 指令的繫結值,如v-my-directive="1+1",則value是2
oldValue 指令繫結的前一個值,僅在 update和 componentUpdated鉤子中可用。無論值是否改變都可用。
expression 繫結值的表示式或變數名。 例如 v-my-directive="1 + 1,expression 的值是“1 + 1”。
arg 傳給指令的引數。例如 v-my-directive:foo, arg 的值是 "foo"
modifiers 一個包含修飾符的物件。 例如: v-my-directive.foo.bar, 修飾符物件modifiers的值是 { foo: true, bar: true }

   除此之外,還有兩個不太常用的引數,如下:

   vnodeVue編譯生成的虛擬節點。

   oldValue:上一個虛擬節點,僅在 updatecomponentUpdated 鉤子中可用。

指令簡寫

   如果你的指令只包含inserted鉤子函式,則可以進行簡寫:

v-rounoob="{color:'red'}"

Vue.directive('runoob', function (el, binding) {
  // 設定指令的背景顏色
  el.style.backgroundColor = binding.value.color
})