好程序員web前端教程分享Vue相關面試題,Vue是一套構建用戶界面的漸進式框架,具有簡單易用、性能好、前后端分離等優勢,是web前端工程師工作的好幫手,也是企業選拔人才時考察的重點技能。接下來好程序員web前端教程資源就給大家分享一些Vue相關的面試題,幫助大家提升競爭力。

你對Vue生命周期的理解?
Vue實例有一個完整的生命周期,也就是從開始創建、初始化數據、編譯模版、掛載Dom -> 渲染、更新 -> 渲染、卸載等一系列過程,我們稱這是Vue的生命周期。
Vue組件如何通信?
Vue組件通信的方法如下:
props $emit+v-on: 通過props將數據自上而下傳遞,而通過$emit和v-on來向上傳遞信息。
EventBus: 通過EventBus進行信息的發布與訂閱;
vuex: 是全局數據管理庫,可以通過vuex管理全局的數據流;
$attrs $listeners: Vue2.4中加入的$attrs/$listeners可以進行跨級的組件通信;
provide/inject:以允許一個祖先組件向其所有子孫后代注入一個依賴,不論組件層次有多深,并在起上下游關系成立的時間里始終生效,這成為了跨組件通信的基礎。
Vue如何實現雙向綁定?
利用Object.defineProperty劫持對象的訪問器,在屬性值發生變化時我們可以獲取變化,然后根據變化進行后續響應,在vue3.0中通過Proxy代理對象進行類似的操作。
如何理解Vue的響應式系統的?
響應式系統簡述:任何一個 Vue Component都有一個與之對應的Watcher實例。Vue的data上的屬性會被添加getter和setter屬性。當Vue Component render函數被執行的時候,data上會被 觸碰(touch),即被讀, getter方法會被調用, 此時Vue會去記錄此Vue component所依賴的所有data。(這一過程被稱為依賴收集)
data被改動時(主要是用戶操作),即被寫,setter方法會被調用, 此時Vue會去通知所有依賴于此data的組件去調用他們的render函數進行更新。
Vue中的key到底有什么用?
key是為Vue中的vnode標記的唯一id,通過這個key,我們的diff操作可以更準確、更快速。
準確: 如果不加key,那么vue會選擇復用節點(Vue的就地更新策略),導致之前節點的狀態被保留下來,會產生一系列的bug。
快速: key的唯一性可以被Map數據結構充分利用,相比于遍歷查找的時間復雜度O(n),Map的時間復雜度僅僅為O(1)。
computed和watch有什么區別?
computed:
computed是計算屬性,也就是計算值,它更多用于計算值的場景;
computed具有緩存性,computed的值在getter執行后是會緩存的,只有在它依賴的屬性值改變之后,下一次獲取computed的值時才會重新調用對應的getter來計算;
computed適用于計算比較消耗性能的計算場景。
watch:
更多的是「觀察」的作用,類似于某些數據的監聽回調,用于觀察props $emit或者本組件的值,當數據變化時來執行回調進行后續操作;
無緩存性,頁面重新渲染時值不變化也會執行。
當然,根據企業中對web前端人才的崗位職責規定不同,面試考察的重點也不盡相同。如果你想了解更多web前端面試題或掌握更多面試技巧,可以關注“好程序員”微信公眾號,定期發布技術熱點和求職指導文章,助力你更快更好的求職。