看看面試題,只是為了查漏補缺,看看自己那些方面還不懂。切記不要以為背了面試題,就萬事大吉了,最好是理解背后的原理,這樣面試的時候才能侃侃而談。不然,稍微有水平的面試官一看就能看出,是否有真才實學還是剛好背中了這道面試題。(都是一些基礎的vue面試題,大神不用浪費時間往下看)
一、對于MVVM的理解?
MVVM是Model-View-ViewModel的縮寫。
Model :代表數據模型,也可以在Model中定義數據修改和操作的業務邏輯。
View :代表UI組件,它負責將數據模型轉化成UI展現出來。
ViewModel :監聽模型數據的改變和控制視圖行為、處理用戶交互,簡單理解就是一個同步View和Model的對象,連接Model和View。
在MVVM架構下,View和Model之間并沒有直接的聯系,而是通過ViewModel進行交互,Model和ViewModel之間的交互是雙向的, 因此View數據的變化會同步到Model中,而Model數據的變化也會立即反應到View上。
ViewModel通過雙向數據綁定把View層和Model層連接了起來,而View和 Model之間的同步工作完全是自動的,無需人為干涉,因此開發者只需關注業務邏輯,不需要手動操作DOM, 不需要關注數據狀態的同步問題,復雜的數據狀態維護完全由MVVM來統一管理。
二、Vue的生命周期
beforeCreate (創建前) 在數據觀測和初始化事件還未開始
created (創建后) 完成數據觀測,屬性和方法的運算,初始化事件,$屬性還沒有顯示出來(載入前)在掛載開始之前被調用,相關的函數首次被調用。實例已完成以下的配置:編譯模板,把里面的數據和模板生成。注意此時還沒有掛載到頁面上。(載入后)在被新創建的el屬性還沒有顯示出來
beforeMount (載入前) 在掛載開始之前被調用,相關的render函數首次被調用。實例已完成以下的配置:編譯模板,把data里面的數據和模板生成html。注意此時還沒有掛載html到頁面上。
mounted (載入后) 在el 被新創建的 vm.$el 替換,并掛載到實例上去之后調用。實例已完成以下的配置:用上面編譯好的html內容替換el屬性指向的DOM對象。完成模板中的html渲染到html頁面中。此過程中進行ajax交互。
beforeUpdate (更新前) 在數據更新之前調用,發生在虛擬DOM重新渲染和打補丁之前。可以在該鉤子中進一步地更改狀態,不會觸發附加的重渲染過程。
updated (更新后) 在由于數據更改導致的虛擬DOM重新渲染和打補丁之后調用。調用時,組件DOM已經更新,所以可以執行依賴于DOM的操作。然而在大多數情況下,應該避免在此期間更改狀態,因為這可能會導致更新無限循環。該鉤子在服務器端渲染期間不被調用。
beforeDestroy (銷毀前) 在實例銷毀之前調用。實例仍然完全可用。            
新聞熱點
疑難解答
圖片精選