當前位置:編程學習大全網 - 編程語言 - vue面試題

vue面試題

Model 層: 對應數據層的域模型,它主要做域模型的同步 。在層間關系?,它主要?於抽象出 ViewModel 中視圖的 Model。

View 層: 作為視圖模板存在 ,在 MVVM ?,整個 View 是?個動態模板。 除了定義結構、布局外,它展示的是 ViewModel 層的數據和狀態 。View 層不負責處理狀態,View 層做的是 數據綁定的聲明、 指令的聲明、 事件綁定的聲 明。

ViewModel 層: 把 View 需要的層數據暴露,並對 View 層的 數據綁定聲明、 指令聲明、 事件綁定聲明 負責,也就是處 理 View 層的具體業務邏輯。 ViewModel 底層會做好綁定屬性的監聽。當 ViewModel 中數據變化,View 層會得到更新;?當 View 中聲明了數據的雙向綁定(通常是表單元素),框架也會監聽 View 層(表單)值的變化。?旦值變 化,View 層綁定的 ViewModel 中的數據也會得到?動更新。

優點:

Model變化和修改,?個ViewModel可以綁定不同的"View"上,當View變化的時候Model不可以不變,當Model變化 的時候View也可以不變。妳可以把?些視圖邏輯放在?個ViewModel?,讓很多view重?這段視圖邏輯

缺點:

Vue 實例有?個完整的?命周期,也就是從開始創建、初始化數據、編譯模版、掛載Dom -> 渲染、更新 -> 渲染、卸載 等?系列過程

官?實例的異步請求是在mounted?命周期中調?的,?實際上也可以在created?命周期中調?。

puted用於計算屬性,只有它依賴的值改變才會觸發,且這個值有緩存

watch用於監聽壹個屬性的變化,屬性變化就會觸發

computed:

?結:

簡單版:利? Object.defineProperty 劫持對象的訪問器,在屬性值發?變化時我們可以獲取變化,然後根據變化進?後續響應,在 vue3.0中通過Proxy代理對象進?類似的操作。

補充

vue的雙向綁定是通過數據劫持和發布者-訂閱者模式實現的,數據劫持又是通過

Object.defineProperty()實現的

Proxy的優勢如下:

Proxy可以直接監聽對象?屬性

Proxy可以直接監聽數組的變化

Proxy有多達13種攔截?法,不限於apply、ownKeys、deleteProperty、has等等是 Object.defineProperty 不具備的

Proxy返回的是?個新對象,我們可以只操作新的對象達到?的,?

Object.defineProperty 只能遍歷對象屬性直接修 改Proxy作為新標準將受到瀏覽器?商重點持續的性能優化,也就是傳說中的新標準的性能紅利

Object.defineProperty的優勢如下: 兼容性好,?持IE9

v-if 用於條件渲染

v-show 用於條件渲染,兩者的區別請參考下壹個問題

v-for 用於列表渲染

v-on 監聽事件

v-bind 動態綁定

v-html 渲染html元素

v-model 數據雙向綁定

v-if 是惰性的,只有條件為真時才會切換,為假時什麽也不做。確保切換過程中的事件監聽器和子組件適當的被銷毀和重建,適用於運行條件很少改變的場景。v-show 不管條件是否為真,總是會被渲染,適用於頻繁切換的場景

v-for優先級高於v-if,放於同級可能會重復渲染兩次v-if,建議把v-for放於v-if所在的外層元素

原理:eventloop事件循環

在下次 DOM 更新循環結束之後執行延遲回調。在修改數據之後立即使用這個方法,獲取更新後的 DOM。

key 主要用在 Vue 的虛擬 DOM 算法,在新舊 nodes 對比時辨識 VNodes。不指定key時,Vue 會使用壹種最大限度減少動態元素並且盡可能的嘗試

就地修改/復用相同類型元素的算法。而使用 key 時,它會基於 key 的變化重新排列元素順序,並且會移除 key 不存在的元素。

有相同父元素的子元素必須有獨特的 key。重復的 key 會造成渲染錯誤。

1.beforeCreate

初始化界面前

2.created

初始化界面後,拿到data,props,methods、computed和watch

3.beforeMount

渲染dom前

4.mounted

渲染dom後,拿到$el

5.beforeUpdate

更新前

6.updated

更新後,拿到更新後的dom

7.beforeDestroy

卸載組件前

8.destroyed

卸載組件後

9.activated

被 keep-alive 緩存的組件激活時調用

10.deactivated

被 keep-alive 緩存的組件停用時調用

虛擬dom是對真實dom的壹種映射,新舊Vnode比較同層級的節點,然後根據兩者的差異只更新有差異的部分,生成新的視圖,而不是對樹進行逐層搜素遍歷,因此時間復雜度是O(n)。虛擬dom可以減少頁面的回流和重繪,提升性能

  • 上一篇:新兵新訓個人總結範文
  • 下一篇:單招考試考什麽 都有哪些科目
  • copyright 2024編程學習大全網