這篇文章主要為大家展示了“Vue組件和Route生命周期的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Vue組件和Route生命周期的示例分析”這篇文章吧。
定南網(wǎng)站建設公司成都創(chuàng)新互聯(lián),定南網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為定南近千家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設要多少錢,請找那個售后服務好的定南做網(wǎng)站的公司定做!先講點實際的
實用點的鉤子:
Created:vue實例被生成后的一個生命周期鉤子函數(shù)。(頁面初始化數(shù)據(jù)加載一般寫這里);
beforeCreate:給個loading界面 created撤銷loading;
beforeDestory:你確認刪除XX嗎?
destoryed:當前組件已被刪除,清空相關內(nèi)容
關于Vue組件生命周期,翻譯后圖示:
module.exports = { //props: ['父組建傳的值'], data:function(){ lifecycle.push("data"); return { msg: '各個階段,可以查看控制臺輸出,message from my-views', title:'my_views', lifecycle: lifecycle } }, //這里是route的生存周期 route:{ //waitForData: true, // 數(shù)據(jù)加載完畢后再切換試圖,也就是 點擊之后先沒反應,然后數(shù)據(jù)加載完,再出發(fā)過渡效果 canActivate:function(transition){ // canActivate階段,可以做一些用戶驗證的事情(是否可以被激活) // 在驗證階段,當一個組件將要被切入的時候被調(diào)用。 }, activate:function(transition){ // 在激活階段被調(diào)用,在 activate 被斷定( resolved ,指該函數(shù)返回的 promise 被 resolve )。用于加載和設置當前組件的數(shù)據(jù)。(激活) //this.$root.$set('header',this.title); transition.next(); //此方法結束后,api會調(diào)用afterActivate 方法 //在aftefActivate中 會給組件添加 $loadingRouteData 屬性 并設置為true }, data: function(transition) { var _this = this; // 在激活階段被調(diào)用,在 activate 被斷定( resolved ,指該函數(shù)返回的 promise 被 resolve )。用于加載和設置當前組件的數(shù)據(jù) // 說明之前請求過 則不用再請求了 if(this.$root.myViewsData){ this.$data = this.$root.myViewsData; transition.next(); console.log('已經(jīng)請求過了不再請求數(shù)據(jù)'); return; } //將數(shù)據(jù)同步到根節(jié)點 this.$root.myViewsData = this.$data; setTimeout(function(){ //這里 _this.$loadingRouteData 是 true transition.next({msg:'加載后的數(shù)據(jù)'}); //在調(diào)用完transition.next 后,_this.$loadingRouteData 為 false }.bind(this),4000); }, canDeactivate:function(transition){ // 在驗證階段,當一個組件將要被切出的時候被調(diào)用。(是否可以被禁用) }, deactivate: function (transition) { // 在激活階段,當一個組件將要被禁用和移除之時被調(diào)用。(禁用) } }, beforeCreate:function(){ // 在實例初始化之后,數(shù)據(jù)觀測(data observer) 和 event/watcher 事件配置之前被調(diào)用。 }, created:function(){ // 實例已經(jīng)創(chuàng)建完成之后被調(diào)用。在這一步,實例已完成以下的配置:數(shù)據(jù)觀測(data observer),屬性和方法的運算, watch/event 事件回調(diào)。然而,掛載階段還沒開始,$el 屬性目前不可見。 }, beforeCreate:function(){ // 在實例初始化之后,數(shù)據(jù)觀測(data observer) 和 event/watcher 事件配置之前被調(diào)用。 }, mounted:function(){ // el 被新創(chuàng)建的 vm.$el 替換,并掛載到實例上去之后調(diào)用該鉤子。如果 root 實例掛載了一個文檔內(nèi)元素,當 mounted 被調(diào)用時 vm.$el 也在文檔內(nèi)。 }, beforeUpdate: function(){ // 數(shù)據(jù)更新時調(diào)用,發(fā)生在虛擬 DOM 重新渲染和打補丁之前。 // 你可以在這個鉤子中進一步地更改狀態(tài),這不會觸發(fā)附加的重渲染過程。 }, updated: function(){ // 由于數(shù)據(jù)更改導致的虛擬 DOM 重新渲染和打補丁,在這之后會調(diào)用該鉤子。 //當這個鉤子被調(diào)用時,組件 DOM 已經(jīng)更新,所以你現(xiàn)在可以執(zhí)行依賴于 DOM 的操作。然而在大多數(shù)情況下,你應該避免在此期間更改狀態(tài),因為這可能會導致更新無限循環(huán)。 }, //包裹動態(tài)組件時,會緩存不活動的組件實例,而不是銷毀它們。 activated: function(){ // keep-alive 組件激活時調(diào)用。 }, deactivated: function(){ // keep-alive 組件停用時調(diào)用。 }, beforeDestroy:function(){ // 實例銷毀之前調(diào)用。在這一步,實例仍然完全可用。 }, destroyed:function(){ // Vue 實例銷毀后調(diào)用。調(diào)用后,Vue 實例指示的所有東西都會解綁定,所有的事件監(jiān)聽器會被移除,所有的子實例也會被銷毀。 } }
以上是“Vue組件和Route生命周期的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司行業(yè)資訊頻道!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。