例項化vue發生了什麼 詳解vue生命週期

2022-03-29 05:24:23 字數 1426 閱讀 8929

data:,

methods:

}})元件例項剛被建立,此時無法訪問到 el 屬性和 data 屬性等..

beforecreate()`)   //undefined

console.log(`屬性message:$`) //undefined

console.log(`方法init:$`) //undefined

}

當乙個 vue 例項被建立時,他向 vue 的響應式系統中加入了其 data 物件中能找到的所有屬性.

利用 es5 特性 object.defineproperty,遍歷 data 物件下所有屬性,將其轉化為 getter/setter,以便攔截物件賦值與取值操作,然後利用發布/訂閱者模式,從而實現資料的雙向繫結!

所以只有當例項被建立時 data 中存在的屬性才是響應式的!!!!

將methods 下的所有方法進行宣告.

將methods下的方法和data下的屬性通過遍歷和利用 es5 特性 object.defineproperty**到例項下.

this.a = this.$data.a = this.data.a;

this.fn = this.$methods.fn = this.methods.fn;

元件例項建立完成,屬性已繫結,但 dom 還未生成,$el 屬性還不存在!

created()`)   //undefined

console.log(`屬性message:$`) //message:hey,vue-lifeperiod!

}

將模板 template 編譯成 ast 樹、render 函式(new watch 將模板與資料建立聯絡)以及 staticrenderfns 函式(通過 diff 演算法優化 dom 更新);

執行 render 方法,返回乙個 vnode 物件(virtual dom)

模板編譯/掛載之前

beforemount()`)

}

模板編譯/掛載之後

mounted()`)

}

元件更新之前

beforeupdate()
元件更新之後

updated()
元件銷毀之前

beforedestroy()`) //message:hey,vue-lifeperiod!

}

元件銷毀之後

destroyed()`) //message:hey,vue-lifeperiod!

}

例項銷毀後雖然 dom 和屬性方法都還存在,但改變他們都將不再生效!

例項化vue發生了什麼 詳解vue生命週期

本文將對vue的生命週期進行詳細的講解,讓你了解乙個vue例項的誕生都經歷了什麼 我在github上建立了乙個存放vue筆記的倉庫,以後會陸續更新一些知識和專案中遇到的坑,有興趣的同學可以去看看哈 歡迎star 傳送門data methods 元件例項剛被建立,此時無法訪問到 el 屬性和 data...

vue 初始化請求例子 Vue例項初始化

vue的建構函式new vue 一切都是從vue的建構函式開始的.當執行了npm run dev的構建過程就是執行這些初始化的過程,首先在node modules中找到vue原始碼,core檔案是對vue核心的包裝,入口檔案index.js,先從乙個建構函式開始,然後在vue的prototype上進...

Vue拖拽元件開發例項詳解

為什麼選擇vue?主要原因 對於前端開發來說,相容性是我們必須要考慮的問題之一。我們的專案不需要相容低版本瀏覽器。專案本身也是乙個資料驅動型的。加之,vue本身具有以下主要特性 使用虛擬dom 輕量級框架 高效的資料繫結 靈活的元件系統 完整的開發生態鏈。這就是我們為什麼選擇vue框架的一些原因。為...