vue

說一說SPA

就是單頁面應用,頁面內容不隨用戶的行爲而變化,通常是經過路由的切換致使頁面內容發生改變!vue

談一下你理解的vue

主要有兩點: 數據驅動視圖、 組件化vuex

而後就是MVVM模式,區別於傳統的MVC模式數組

MVVM模式dom

M: model 模型數據層 主要負責數據哪一起ide

V: view 視圖UI層 主要負責UI交互哪一起函數

VM: Model_view 數據響應層,打通Model與view,是橋樑組件化

Vue生命週期post

beforeCreate 建立前 組件還未生成,屬性也未生效
created 建立後 組件初始化完成,屬性生效,真是dom還未生成
beforeMounte 掛載前 reader函數首次加載
mounted 掛載後 el 被新建立的 vm.$el 替換,並掛載到實例上去以後調用該鉤子
beforeUpdate 更新前 組件數據更新以前調用,發生在虛擬 DOM 打補丁以前
updated 更新後
beforeDestroy 銷燬前
destroyed 銷燬後this

VUE響應式插件

v-model 雙向綁定實現響應式(組件data 的數據一旦變化,馬上觸發視圖的更新)

Vue2.0對於響應式數據的實現有一些不足:

  • 沒法檢測數組/對象的新增
  • 沒法檢測經過索引改變數組的操做

解決:

  • Vue.set()方法 //針對第一個問題
  • Vue3.0採用Proxy替代了Object.definePropert 由於Object.DefineProperty的缺點,vue3 啓用proxy

那麼Object.definePropert的缺點是:
一、深度監聽,須要一次性遞歸到底,一次性計算量大
二、新增和刪除屬性監聽不到,須要Vue.set() 和 Vue.delete()
三、沒法原生監聽數組,須要特殊處理

VUE高級特性

  • 見總結思惟導圖

說一下你對Vuex的理解

uex 是一個專爲 Vue.js 應用程序開發的狀態管理插件。它採用集中式存儲管理應用的全部組件的狀態,而更改狀態的惟一方法是提交mutation,例this.$store.commit('SET_VIDEO_PAUSE', video_pauseSET_VIDEO_PAUSE爲mutations屬性中定義的方法 。

Vuex解決了什麼問題?

解決兩個問題

  • 多個組件依賴於同一狀態時,對於多層嵌套的組件的傳參將會很是繁瑣,而且對於兄弟組件間的狀態傳遞無能爲力。
  • 來自不一樣組件的行爲須要變動同一狀態。以往採用父子組件直接引用或者經過事件來變動和同步狀態的多份拷貝。以上的這些模式很是脆弱,一般會致使沒法維護的代碼。

參考文章:vuex其餘問題集合

相關文章
相關標籤/搜索