Vue面試題
1.什麼是 vue 生命週期
Vue 實例從創建到銷燬的過程,就是生命週期。
也就是從開始創建、初始化數據、編譯模板、掛載Dom→渲染、更新→渲染、卸載等一系列過程,我們稱這是 Vue 的生命週期。
它可以總共分爲8個階段:創建前/後, 載入前/後,更新前/後,銷燬前/銷燬後
2.vue生命週期的作用是什麼
它的生命週期中有多個事件鉤子,就是函數類似於Jquery的ready()方法,在生命週期變化的時候可以觸發這些方法加入業務邏輯。
3.第一次頁面加載會觸發哪幾個鉤子(函數)
beforeCreate,created,beforeMount,mounted
4.簡述每個週期具體適合哪些場景
beforecreate : 可以在這加個loading事件, 在加載實例時觸發
created : 初始化完成時的事件寫在這裏,如在這結束loading事件,異步請求也適宜在這裏調用
mounted : 掛載元素, 獲取到DOM節點
updated : 如果對數據統一處理,在這裏寫上相應函數
beforeDestroy : 可以做一個確認停止事件的確認框 nextTick : 更新數據後立即操作dom
5.created和mounted的區別
created一般是在html渲染前的操作,此時el還是undefined,data已經存在。這裏不能對dom進行操作
mounted一般是在html渲染完成後的操作,此時el,data都已經加載完成,一般對dom的操作都寫在mounted中,例如獲取innerHTML,初始化echarts的時候。
6.vue獲取數據在哪個周期函數
created
vue路由面試題
1.mvvm 框架是什麼?
MVVM是Model-View-ViewModel的縮寫。MVVM是一種設計思想。Model 層代表數據模型,也可以在Model中定義數據修改和操作的業務邏輯;View 代表UI 組件,它負責將數據模型轉化成UI 展現出來,ViewModel 是一個同步View 和 Model的對象。
在MVVM架構下,View 和 Model 之間並沒有直接的聯繫,而是通過ViewModel進行交互,Model 和 ViewModel 之間的交互是雙向的, 因此View 數據的變化會同步到Model中,而Model 數據的變化也會立即反應到View 上。
ViewModel 通過雙向數據綁定把 View 層和 Model 層連接了起來,而View 和 Model 之間的同步工作完全是自動的,無需人爲干涉,因此開發者只需關注業務邏輯,不需要手動操作DOM, 不需要關注數據狀態的同步問題,複雜的數據狀態維護完全由 MVVM 來統一管理。
在VUE當中的對應關係:
2.vue-router 是什麼它有哪些組件
路由,其實就是指向的意思
路由中有三個基本的概念 route, routes, router。
1, route,它是一條路由,由這個英文單詞也可以看出來,它是單數, Home按鈕 => home內容, 這是一條route, about按鈕 => about 內容, 這是另一條路由。
2, routes 是一組路由,把上面的每一條路由組合起來,形成一個數組。[{home 按鈕 =>home內容 }, { about按鈕 => about 內容}]
3, router 是一個機制,相當於一個管理者,它來管理路由。因爲routes 只是定義了一組路由,它放在哪裏是靜止的,當真正來了請求,怎麼辦? 就是當用戶點擊home 按鈕的時候,怎麼辦?這時router 就起作用了,它到routes 中去查找,去找到對應的 home 內容,所以頁面中就顯示了 home 內容。
4,客戶端中的路由,實際上就是dom 元素的顯示和隱藏。當頁面中顯示home 內容的時候,about 中的內容全部隱藏,反之也是一樣。客戶端路由有兩種實現方式:基於hash 和基於html5 history api.
啊啊
答案參考於以下資料:
書籍:vue.js實戰
MVVM模式在VUE當中的對應關係:https://www.jianshu.com/p/6c1c5c3c44d0
個人收集整理前端面試題(答案持續更新ing):https://www.jianshu.com/p/0b3cb88d2cea