vue有四個全域性指令:directive、extent、set、component
directive:自定義指令
//寫乙個改變顏色的指令
vue.directive('amie',function
(el,binding,vnode));
//html
可以看出其實指令的實際是操作dom元素,第乙個引數就是element,第二個是引數是傳給指令的值,第三個。。。。
extent:作用和元件差不多,但是每次掛載都要new一次在$mount掛載(可以掛載到例項範圍以外的地方),不像元件那樣可以多次復用不需要new
var authorextend =vue.extend(}", data
() }
});//
掛載new authorextend().$mount('.author');
//html
set:改變vue例項data的值
vue.set(dataobj,'count',4);
一般我們會用 vm.data1 = 123 這樣來修改,這樣沒問題
但是修改的資料是object型別的屬性值,vue是檢測不了變化的(這是受限於js的內部機制)
例如:vm.dataobj.count = 4來改變值,vue檢測不了dataobj.count的變化從而沒辦法在dom更新
這個時候用set就可以告訴vue改變了data中dataobj的count屬性
component:定義全域性元件,在任意vue例項內都可以使用
vue.component('zhangamie',}`,data()
}})
mixin:全域性混入選項(混入的選項和原來的並存)
vue.mixin(}})
以後所有新建的vue例項都會在它們的data裡面混進這個newdata,但是如果這個newdata在例項中再次被定義,會被例項中的data覆蓋
先後順序是:全域性的mixin-->區域性-->原生的mixin,順序後的會覆蓋順序前的(覆蓋只會覆蓋選項內部的值,不會覆蓋整個選項)
vue全域性指令 獲取焦點
知識點 bind函式 和樣式相關的操作,一般都可以在 bind 中執行,繫結到元素上的時候,立即執行 bind函式,且只執行一次 注意 在每個函式中,第乙個引數永遠是 el,表示被繫結了指令的那個元素,這個 el引數是乙個元素的原生的js物件 inserted函式 和js行為有關的操作,最好在 in...
vue自定義指令 區域性指令和全域性指令
以後都優先用inserted,因為inserted裡獲取到的資訊比bind中多一些 在鉤子函式內部可以通過第二個引數binding的value屬性,獲取到指令繫結的引數 指令的修飾符可以用來做一些特定的邏輯判斷處理 注意 在鉤子函式內部的this不是vm例項,可以通過第三個引數vnode.conte...
使用use註冊Vue全域性元件和全域性指令
vue中的元件和指令分為區域性元件 區域性指令和全域性元件 全域性指令。對於註冊有一定數量的全域性指令和全域性元件時,官方文件中的方法就顯得有些不夠清爽了。import eg from components eg.vue export default vue import components fr...