vue的面試題

2021-10-16 17:30:06 字數 1335 閱讀 6991

// 預設vue在初始化資料時,會給data中的屬性使用object.defineproperty 重新定義所有屬性,

// 當頁面取到對應屬性時,會進行依賴收集(收集當前元件的watcher) 

// 如果屬性發生變化會通知相關依賴進行更新操作

// dep.notify()  觸發資料對應的依賴進行更新

object.defineproperty();

//使用函式劫持的方式,重寫了陣列的方法

// vue將data中的陣列,進行了原型鏈重寫。

// 指向了自己定義的陣列原型方法,這樣當呼叫陣列api時,可以通知依賴更新,如果陣列中包含著引用型別。

// 會對陣列中的引用型別再次進行監控。

initdata

new observer();

// 因為如果不採用非同步更新,那麼每次更新資料都會對當前元件進行重新渲染,所以為了提高效能。vue會在本輪資料更新後,再去非同步更新檢視。

nexttick(flushschedulerqueue);  //在下一次tick中重新整理watcher佇列

//渲染節流

// nexttick 方法主要是使用了巨集任務和微任務,定義了乙個非同步方法,多次呼叫nexttick 會將方法存入佇列中,

// 通過這個非同步方法清空當前佇列,所以這個nexttick就是非同步方法。

// 巨集任務和微任務:都是非同步方法,nexttick()  callbacks.push(cb)   timerfunc()  返回promise

// flushqueue 會使用nexttick保證當前檢視渲染完成。

//vue 中的computed的特點

// 預設computed也是乙個watcher是具備快取的,只要當依賴的屬性發生變化時,才會更新檢視

initcomputed 

new watcher()

definecomputed

createcomputedgetter

// computed watch  method 區別

// 只要把方法用在模板上了,每次檢視更新 就會重新渲染,效能開銷比較大

// 計算屬性 是具備快取的 

// computed 和watch的原理  裡面都是乙個watcher。 唯一不同的是computd裡面是具備快取。

// 當使用者指定了watch中的deep屬性為true時,如果當前監控的值是陣列型別,會對物件中的每一項進行求值,此時會將當前watcher存入到對應屬性的依賴中,

// 這樣陣列中物件發生變化時也會通知資料更新。

vm.$watch(exporfn,handler,options)

// computed 內部會用在模板上的。

vue面試題 vue原理

1.元件化和mvvm 2.響應式原理 3.vdom 和 diff 演算法 4.模板編譯 5.元件渲染過程 6.前端路由 元件化基礎 1.很久以前 的元件化 asp jsp php 已經有元件化 nodejs 中已有類似元件化 2.資料驅動檢視 vue mvvm 3.資料驅動檢視 react sets...

vue面試題目

1,vue元件通訊 1 父子元件之間的通訊 父 子 子元件中props引數,父元件中引入子元件,在子元件上面繫結所需的值 eg 子元件中 父元件中 子 父 emit v on方法,子元件中,繫結方法a,通過 emit觸發父元件中的方法,順便傳參到父元件 eg 子元件中 showsearchmodal...

Vue之面試題

1 說下vue資料雙向繫結的原理 2 說說vuex的作用以及應用場景 3 說說vue元件的資料通訊方式 4 vue的原始碼有看過嗎?說說vuex工作原理 5 為什麼說虛擬 dom會提高效能,解釋一下它的工作原理 6 請你詳細介紹一些 package.json 裡面的配置 7 為什麼說vue是一套漸進...