new Vue 中究竟發生了什麼?

2021-09-10 22:55:11 字數 697 閱讀 3880

new vue()是例項化乙個vue物件

在建構函式中執行_init(options),隨後匯入五大mixin,進行例項化的初始化過程

initmixin(vue)  // options初始化

statemixin(vue) // 狀態(props、state、computed、watch)

eventsmixin(vue) // 事件

lifecyclemixin(vue) // 生命週期

rendermixin(vue) // 頁面渲染

initlifecycle:初始化生命週期

initevents:初始化事件

initrender:渲染頁面

callhook(vm,'beforecreate') :beforecreate鉤子函式

initstate:初始化狀態 props data computed watch methods

callhook(vm,'created'):created鉤子函式

雙向繫結 initstate裡的initdata

proxy 和observe

proxy將key做** 簡介呼叫

observe做乙個資料監聽 訂閱者   object.defineproperty 在訪問値可以新增依賴進行操作,在複製是通知訂閱者進行依賴更新 

這就是vue中的資料攔截

new Vue 發生了什麼

合併options 初始化生命週期 初始化事件 初始化渲染 觸發beforecreate鉤子 export function initstate vm component else true asrootdata if opts.computed initcomputed vm,opts.compu...

js中new之後發生了什麼

functionfn var newfn newfn console.log newfn.a 1 在new之後究竟發生了什麼呢?var newfn newfn.proto fn.prototype fn.call newfn 最後返回乙個新的物件 接下來說一下原型鏈 首先明確的是函式有prototy...

http enter以後發生了什麼?

自己總結 輸入 按enter發生了什麼?寫在前面的話 http www.google 8080 script jquery.js http協議名稱 www 子網域名稱 google 主網域名稱 8080埠號 script jquery 請求位址 當協議 子網域名稱 主網域名稱 埠號中任意乙個不同的時...