色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

vue bind 加載周期

洪振霞1年前8瀏覽0評論

Vue的數據綁定系統是其最受歡迎的特性之一。Vue可以通過v-bind指令,把模板中的 DOM 屬性和 Vue 實例的數據綁定在一起。這樣的數據綁定方式,使得我們只需要操作 Vue 實例的數據,DOM 元素的屬性就可以自動響應變化。那么,v-bind的加載周期是什么樣子的呢?

Vue的生命周期函數是一組先后順序嚴格的事件鉤子,可以幫助我們在合適的時機做出響應。一個 Vue 組件存在于如下三個主要生命周期階段:

/* 創建階段 */ 
beforeCreate
created
/* 掛載階段 */ 
beforeMount 
mounted 
/* 更新階段 */ 
beforeUpdate 
updated 
/* 銷毀階段 */ 
beforeDestroy 
destroyed

之所以要梳理生命周期,是為了幫助我們約定好在什么階段操作 DOM。在 Vue 組件的生命周期中,mounted 對應的鉤子函數是在組件第一次掛載到 DOM 中時調用的。在這一階段下,我們可以訪問到當前組件的 DOM,而且可以在這時候開啟一些異步操作。

Vue.directive('pin', { 
bind: function(el, binding, vnode) {
// 注意,在這里,binding.value 可能還沒有賦值 
Vue.nextTick(function() {
el.style.position = 'fixed'; 
el.style.top = binding.value + 'px'; 
});
}
});

在上述代碼中,我們給一個名為pin的自定義指令,在v-bind滿足特定條件時,將其綁定在el元素上。在el元素被綁定到當前組件的父節點上后,會觸發mounted生命周期函數,此時我們能夠訪問到el元素,所以可以直接為其設置類名、樣式等。

在一些情況下,數據綁定還需要借助Vue的作用域來完成,比如在一個項目中可能有多個組件同時渲染到同一個頁面上。為了防止這些組件之間數據混亂,我們為每個組件添加獨立的作用域——也就是指令的 scope。在 beforeMount 階段,我們可以使用 Vue 提供的 scopedSlots 屬性,把新的作用域掛載到當前節點上。

/* 給組件添加 slot-scope */ 
Vue.component('child', { 
props: ['data'], 
template: '

子組件的標題

' }); new Vue({ el: '#app', data: { data: [1, 2, 3] } });

在上述代碼中,我們首先創建了一個“子組件”child,將data作為 props 傳入。我們為子組件的 template 渲染了一個包含了 slot 的 div 元素。而在父組件的模板中,我們使用了作用域插槽來引用子組件傳遞的數據。此時我們可以看到,作用域作為了 slot-scope 屬性穿透到了子組件中。

綜上所述,Vue的生命周期及作用域系統為我們提供了豐富的數據綁定場景。在加載周期中,我們可以利用定制好的鉤子函數來操作 DOM,而使用作用域則能夠給我們的數據綁定增加更多的可控性。