(一)Vue.Directive命令(カスタム命令)
3662 ワード
このセクションの知識点グローバルapi Vue.Directive命令 カスタム命令のライフサイクル グローバルapiの概要グローバルapiはコンストラクタの中ではなく、まずグローバル変数を宣言するか、vueの中で直接いくつかの新しい機能を定義し、VUEはいくつかのグローバルapiを内蔵し、簡単な点はコンストラクタの外でvueが私たちに提供したapi関数で新しい機能を定義することである.
Vue.义齿私たちは第1四半期に内部命令を学びましたが、v-helloの命令を定義したいと思っています.文字を緑にする役割を果たしています. 開始する前に小さなDEMOを書いて、ページの上に1つの数字が10で、数字の下に1つのボタンがあって、毎回1 をクリックしてプラスしますコードは次の です.次はvueを使いましょう.directiveは と書きますここで説明するのは、コマンドがv-helloと書かれていることですが、directiveを使うときは前にv-を付けずに、コマンドを直接入力すると数字も緑になり、カスタムコマンドも機能していることを説明します. el:DOM を直接操作するためにバインドされた要素を命令する. binding:命令を含む多くの情報 のオブジェクト vnode:VUEコンパイル生成された仮想ノード カスタム命令のライフサイクル
カスタム命令には、bind,inserted,update,componentUpdate,unbindの5つのライフサイクル(フック関数とも呼ばれる)があります.このvueを解くには を使うことができます. bindは1回のみ呼び出され、命令が初めて要素にバインドされたときに呼び出され、このフックでバインドを定義するときに1回の初期化動作を実行することができる. inserted:バインドされた要素が親ノードに挿入するときに呼び出す(親ノードが存在すれば呼び出すことができ、documentに存在する必要はない) . update:エレメントが存在するテンプレートの更新時に呼び出され、バインド値が変化するかどうかにかかわらず、更新前後のバインド値を比較することにより、不要なテンプレート更新 を無視する. componentUpdate:バインドされた要素があるテンプレートが更新更新サイクルを完了したときに を呼び出す. unbind:一度だけ呼び出し、月要素の解縛を命令するときに を呼び出す次のコード を参照
Vue.义齿
Title
{{message}}
var app = new Vue({
el:"#app",
data:{
message:10,
color: "green"
},
methods:{
add:function(){
this.message++;
}
}
})
Title
{{message}}
Vue.directive("hello",function(el,binding,vnode){
el.style["color"]= binding.value;
})
var app = new Vue({
el:"#app",
data:{
message:10,
color3:"red"
},
methods:{
add:function(){
this.message++;
}
}
})
カスタム命令には、bind,inserted,update,componentUpdate,unbindの5つのライフサイクル(フック関数とも呼ばれる)があります.
function unbind(){
app.$destroy()
}
Title
{{message}}
function jiebang(){
app.$destroy();
}
Vue.directive("hello",{
bind:function(el,bingind,vnode){
el.style["color"] = bingind.value;
console.log("1-bind");
},
inserted:function(){
console.log("2-insert");
},
update:function(){
console.log("3-update");
},
componentUpdated:function(){
console.log('4 - componentUpdated');
},
unbind:function(){
console.log('5 - unbind');
}
})
var app = new Vue({
el:"#app",
data:{
message:10,
color3:"red"
},
methods:{
add:function(){
this.message++;
}
}
})