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

vue.js beforecreated

錢良釵1年前8瀏覽0評論

beforeCreate是Vue.js中一個非常重要的生命周期鉤子函數(shù),在Vue實例被創(chuàng)建之前會調(diào)用該函數(shù)??梢詫⒃赽eforeCreate中執(zhí)行的操作視為該Vue實例的初始化。同時,beforeCreate是一個無法訪問組件實例和其data、computed、methods等組件內(nèi)部屬性的時期。

beforeCreate () {   
console.log('beforeCreate')
}

在beforeCreate之前,Vue對象沒有實例化,數(shù)據(jù)也沒有初始化。之所以beforeCreate觸發(fā)在實例化之前,是因為它是要在組件配置之后和數(shù)據(jù)觀測之前被調(diào)用的。也就是說,在beforeCreate期間,Vue對象還處于未實例化的狀態(tài)。

beforeCreate的作用主要有兩個:

1. 創(chuàng)建Vue實例之前的操作:在該生命周期下,組件實例已經(jīng)初始化了,但它的$el還沒有生成,因此在該生命周期內(nèi)不能獲取到任何的DOM元素,也不能訪問到組件生命周期內(nèi)的data、computed和methods等組件內(nèi)部屬性。因此,beforeCreate通常適用于插件注入,全局變量初始化和其它前期待處理的工作。

beforeCreate () { 
console.log('beforeCreate ->', this.$el) // undefined
}

2. 偵聽組件屬性的變化是無效的。所以,在beforeCreate時,無法通過watch或computed來監(jiān)聽、計算屬性值以及偵聽DOM和數(shù)據(jù)變化等。

beforeCreate () { 
this.$watch('msg', () =>{
console.log('msg changed!') // 無輸出
}) 
}

在beforeCreate生命周期中,組件的屬性只有props和methods可以訪問。因此,如果要在beforeCreate中獲取組件的props,需要通過組件選項參數(shù)propsData進行傳遞。

Vue.component('my-component', {
props: ['msg'],
beforeCreate () { 
console.log(this.msg) // 1
},
template: '
{{msg}}
' }) new Vue({ el: '#app', propsData: { msg: 1 } })

總之,在beforeCreate鉤子函數(shù)中,我們可以去做一些插件注入、全局變量、全局鉤子、路由守衛(wèi)等一些圖片的操作。如果要完成一系列的初始化操作,常見的一種做法是通過$nextTick()方法來完成初始化。

beforeCreate () { 
this.$nextTick(() =>{
// do something
}) 
}