接上篇中高級前端面試題(一)基礎篇javascript
vueObserver 數據監聽器,把一個普通的 JavaScript 對象傳給 Vue 實例的 data 選項,Vue 將遍歷此對象全部的屬性,並使用Object.defineProperty()方法把這些屬性所有轉成setter、getter方法。當data中的某個屬性被訪問時,則會調用getter方法,當data中的屬性被改變時,則會調用setter方法。前端
基本思想是整個應用的 state 保持在一個單一的 store 中。 store 就是一個簡單的 javascript 對象, 而改變應用 state 的惟一方式是在應用中觸發 actions,而後爲這些 actions 編寫 reducers 來修改 state。 整個 state 轉化是在 reducers 中完成,而且不該該有任何反作用。vue
Store 是一個 javascript 對象,它保存了整個應用的 state。與此同時,Store 也承擔如下職責:java
Actions 是一個純 javascript 對象,它們必須有一個 type 屬性代表正在執行的 action 的類型。實質上,action 是將數據從應用程序發送到 store 的有效載荷。react
一個 reducer 是一個純函數,該函數以先前的 state 和一個 action 做爲參數,並返回下一個 state。面試
Redux Thunk 的做用 Redux thunk 是一個容許你編寫返回一個函數而不是一個 action 的 actions creators 的中間件。若是知足某個條件,thunk 則能夠用來延遲 action 的派發(dispatch),這能夠處理異步 action 的派發(dispatch)。 何爲純函數(pure function) 一個純函數是一個不依賴於且不改變其做用域以外的變量狀態的函數,這也意味着一個純函數對於一樣的參數老是返回一樣的結果。vuex
vuex使用單一狀態樹 吧store的實例注入到全部的子組件,mutation處理同步事務redux
state → 生命週期處理 → 觸發render → 建立虛擬DOM → 生成fiberDom → diff → 生成新的任務 → 任務分片 → 渲染
複製代碼
setState(updater,[callback])
,第一個參數是更新的對象,第二個參數是更新完成的回調函數;