溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vuex的使用方法

發(fā)布時間:2020-11-24 13:46:26 來源:億速云 閱讀:152 作者:小新 欄目:web開發(fā)

這篇文章主要介紹vuex的使用方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

使用vuex的時候是如果您需要構建是一個中大型單頁應用,您很可能會考慮如何更好地在組件外部管理狀態(tài),Vuex將會成為自然而然的選擇。

狀態(tài)管理

隨著 JavaScript 單頁應用開發(fā)日趨復雜,JavaScript 需要管理比任何時候都要多的 state (狀態(tài))。 這些 state 可能包括服務器響應、緩存數據、本地生成尚未持久化到服務器的數據,也包括 UI 狀態(tài),如激活的路由,被選中的標簽,是否顯示加載動效或者分頁器等等。

管理不斷變化的 state 非常困難。如果一個 model 的變化會引起另一個 model 變化,那么當 view 變化時,就可能引起對應 model 以及另一個 model 的變化,依次地,可能會引起另一個 view 的變化。直至你搞不清楚到底發(fā)生了什么。state 在什么時候,由于什么原因,如何變化已然不受控制。 當系統(tǒng)變得錯綜復雜的時候,想重現問題或者添加新功能就會變得舉步維艱。

Vuex 是一個專為 Vue.js 應用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲管理應用的所有組件的狀態(tài),并以相應的規(guī)則保證狀態(tài)以一種可預測的方式發(fā)生變化。

在應用中,組件之間的通信其實是歸根于應用的狀態(tài)管理;而應用的狀態(tài)是來自多方面的,如何對狀態(tài)進行管理,提高代碼的可維護性,提升開發(fā)效率。Vue 的核心庫只關注視圖層,單文件組件,其模板、邏輯和樣式是內部耦合的,側重數據和視圖的同步;Vue 本身并沒有對數據狀態(tài)的管理進行處理,但其提供了另外一個解決方案 Vuex,一個集中式狀態(tài)管理的庫;也就是說,你可能不需要 Vuex,它只是對你應用狀態(tài)進行管理的一個庫。

Vuex 狀態(tài)自管理應用包含以下幾個部分:

  • state,驅動應用的數據源;

  • view,以聲明方式將 state 映射到視圖;

  • actions,響應在 view 上的用戶輸入導致的狀態(tài)變化。

vuex的使用方法

如上圖,Vuex為Vue Components建立起了一個完整的生態(tài)圈,包括開發(fā)中的API調用一環(huán)。圍繞這個生態(tài)圈,簡要介紹一下各模塊在核心流程中的主要功能:

  • Vue Components:Vue組件。HTML頁面上,負責接收用戶操作等交互行為,執(zhí)行dispatch方法觸發(fā)對應action進行回應。

  • dispatch:操作行為觸發(fā)方法,是唯一能執(zhí)行action的方法。

  • actions:操作行為處理模塊。負責處理Vue Components接收到的所有交互行為。包含同步/異步操作,支持多個同名方法,按照注冊的順序依次觸發(fā)。向后臺API請求的操作就在這個模塊中進行,包括觸發(fā)其他action以及提交mutation的操作。該模塊提供了Promise的封裝,以支持action的鏈式觸發(fā)。

  • commit:狀態(tài)改變提交操作方法。對mutation進行提交,是唯一能執(zhí)行mutation的方法。

  • mutations:狀態(tài)改變操作方法。是Vuex修改state的唯一推薦方法,其他修改方式在嚴格模式下將會報錯。該方法只能進行同步操作,且方法名只能全局唯一。操作之中會有一些hook暴露出來,以進行state的監(jiān)控等。

  • state:頁面狀態(tài)管理容器對象。集中存儲Vue components中data對象的零散數據,全局唯一,以進行統(tǒng)一的狀態(tài)管理。頁面顯示所需的數據從該對象中進行讀取,利用Vue的細粒度數據響應機制來進行高效的狀態(tài)更新。

  • getters:state對象讀取方法。圖中沒有單獨列出該模塊,應該被包含在了render中,Vue Components通過該方法讀取全局state對象。

集中式狀態(tài)管理的好處

相對于分治(碎片化)的狀態(tài)管理,多個狀態(tài)分散的跨越在不同組件交互在各個角落,每個 View 會有相對應的 Model 維護狀態(tài);而集中式管理模式則用于將分散于組件的狀進行集中化管理,提供一個全局的 store 存儲管理應用的狀態(tài)。集中式的狀態(tài)管理可以讓整體的狀態(tài)變化更加明晰,尤其是配合各自的 devtools。

什么情況下我應該使用 Vuex?

雖然 Vuex 可以幫助我們管理共享狀態(tài),但也附帶了更多的概念和框架。這需要對短期和長期效益進行權衡。

如果您不打算開發(fā)大型單頁應用,使用 Vuex 可能是繁瑣冗余的。確實是如此——如果您的應用夠簡單,您最好不要使用 Vuex。一個簡單的 global event bus 就足夠您所需了。但是,如果您需要構建是一個中大型單頁應用,您很可能會考慮如何更好地在組件外部管理狀態(tài),Vuex 將會成為自然而然的選擇。

以上是“vuex的使用方法”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI