Veeはエッセイを学ぶ(二)
19584 ワード
グローバルAPI
まず、グローバルAPIとは何ですか?グローバルAPIはコンストラクタではなく、まずグローバル変数を宣言するか、Vue上で直接いくつかの新しい機能を定義し、VueにはいくつかのグローバルAPIが内蔵されている.directiveは、コンストラクタの外部でVueが提供するAPI関数で新しい機能を定義することを簡単に書きます.
Vue.义齿
Vue.extendコンストラクタの延長
まず、Vueとは何ですか.extend? Vue.extendは、「拡張インスタンスコンストラクタ」、すなわち、一部のオプションが予め設定されたVueインスタンスコンストラクタを返し、常にVueにサービスする.componentはコンポーネントを生成するために使用されます.テンプレートでコンポーネント名がラベルとして使用されるカスタム要素に遭遇すると、自動的に「拡張インスタンスコンストラクタ」が呼び出されてコンポーネントインスタンスが生産され、カスタム要素にマウントされることを簡単に理解できます.
まず、グローバルAPIとは何ですか?グローバルAPIはコンストラクタではなく、まずグローバル変数を宣言するか、Vue上で直接いくつかの新しい機能を定義し、VueにはいくつかのグローバルAPIが内蔵されている.directiveは、コンストラクタの外部でVueが提供するAPI関数で新しい機能を定義することを簡単に書きます.
Vue.义齿
<body> {% verbatim %} <div id="app"> <div v-huang="color">{ { num }}div> <p><button @click="add">ADDbutton>p> div> {% endverbatim %} body> <script> Vue.directive('huang',function (el,binding) { //
console.log(el); //obj={name: "huang", rawName: "v-huang", value: "red", expression: "color", modifiers: {…}, …} console.log(binding); //huang console.log(binding.name); //red console.log(binding.value); //color console.log(binding.expression); el.style = 'color:'+binding.value; }); new Vue({ el: '#app', data: { num:10, color:'red' }, methods:{ add:function () { this.num++; } } }); script>
自定义指令的生命周期
自定义指令有五个生命周期(也叫钩子函数),分别是bind,inserted,update,componentUpdated,unbind
- bind:只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个绑定时执行一次的初始化动作。
- inserted:被绑定元素插入父节点时调用(父节点存在即可调用,不存在于document中)。
- update:被绑定于元素所在的模板更新时调用,而无论绑定值是否变化,通过比较更新前后的绑定值,可以忽略不必要的模板更新。
- componentUpdated:被绑定元素所在模板完成一次更新周期时调用。
- unbind:只调用一次,指令与元素解绑时调用。
<body>
{% verbatim %}
<div id="app">
<div v-huang="color">{
{ num }}div>
<p><button @click="add">ADDbutton>p>
div>
<p>
<button onclick="unbind()"> button>
p>
{% endverbatim %}
body>
<script>
function unbind(){
app.$destroy();
}
Vue.directive('huang',{
bind:function (el,binding) {
//
console.log('1 - bind');
el.style = 'color:'+binding.value;
},
inserted:function () {
//
console.log('2 - inserted');
},
update:function () {
//
console.log('3 - update');
},
componentUpdated:function () {
//
console.log('4 - componentUpdated');
},
unbind:function () {
//
console.log('5 - unbind');
}
});
new Vue({
el: '#app',
data: {
num:10,
color:'red'
},
methods:{
add:function () {
this.num++;
}
}
});
script>
Vue.extendコンストラクタの延長
まず、Vueとは何ですか.extend? Vue.extendは、「拡張インスタンスコンストラクタ」、すなわち、一部のオプションが予め設定されたVueインスタンスコンストラクタを返し、常にVueにサービスする.componentはコンポーネントを生成するために使用されます.テンプレートでコンポーネント名がラベルとして使用されるカスタム要素に遭遇すると、自動的に「拡張インスタンスコンストラクタ」が呼び出されてコンポーネントインスタンスが生産され、カスタム要素にマウントされることを簡単に理解できます.
<body>
{% verbatim %}
<div id="author">div>
{% endverbatim %}
body>
<script>
var authorExtend = Vue.extend({
template:"",
data:function () {
return{
authorName:'huangyongpeng',
authorURL:'http://www.baidu.com'
}
}
});
new authorExtend().$mount('#author');
script>