天天看點

mutations vuex 調用_Vuex的mutations與actions使用詳解 -

這次給大家帶來vuex使用步驟詳解,vuex使用的注意事項有哪些,下面就是實戰案例,一起來看一下。vuex是一個專門為vue.js設計的集中式狀态管理架構。狀态?我把它了解為在data中的屬性需要共享給其他vue元件使用的部分,...

這次給大家帶來Vuex的mutations與actions使用詳解,mutations與actions使用的注意事項有哪些,下面就是實戰案例,一起來看一下。

區分 actions 和 mutations 并不是為了解決競态問題,而是為了能用 devtools 追蹤狀态變化。

事實上在 vuex 裡面 actions 隻是一個架構性的概念,并不是必須的,說到底隻是一個函數,你在裡面想幹嘛都可以,隻要最後觸發 mutation 就行。異步競态怎麼處理那是使用者自己的事情。

vuex 真正限制你的隻有 mutation 必須是同步的這一點(在 redux 裡面就好像 reducer

必須同步傳回下一個狀态一樣)。同步的意義在于這樣每一個 mutation 執行完成後都可以對應到一個新的狀态(和 reducer 一樣),這樣

devtools 就可以打個 snapshot 存下來,然後就可以随便 time-travel 了。如果你開着 devtool 調用一個異步的

action,你可以清楚地看到它所調用的 mutation 是何時被記錄下來的,并且可以立刻檢視它們對應的狀态。

親測:如果在mutation中做了異步操作,在dev-tools中會立即列印一個snapshot,而此時異步操作還沒有執行完,此時的snapshot的資訊是錯誤的。

而在action中做異步操作dev-tools會等等異步操作執行完才去列印mutation的一個snapshot,這樣便于我們回查time-travel,檢視在某個mutation裡的變化。

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

源生JS怎樣實作todolist功能

FileReader實作上傳圖檔之前本地先預覽