vue-cli是一個Vue.js官方的CLI工具,可用于快速搭建Vue項目,并提供了豐富的配置選項。可以提供開發服務器、本地打包開發和生產環境打包等功能。在使用vue-cli創建的項目中全局安裝了Vue.js以及webpack-dev-server和一些必需依賴關系以及檢查瀏覽器版本的插件EsLint等。
但在實際應用中,當應用變得特別大、復雜和多變的時候,我們需要更好的多狀態管理方式,來更好地管理我們vue.js應用的狀態數據。Vuex作為vue.js官方的狀態管理方案,提供了方便的Flux架構實現,是基于Vue.js的一個專門為狀態管理設計的庫。并且具有如下特點:
- 集中式管理應用所有組件的狀態,避免不同組件間狀態重復的問題。 - 為了解決狀態修改的耗時問題 Vue.js 內建了異步操作 API,Vuex也提供了類似。 - 發現問題更容易,因為我們知道修改狀態的具體位置,和每個狀態是從哪個頁面的什么地方修改的,也就更容易去debug了。 - 使代碼更清晰,更易于維護,尤其是涉及多個組件共享狀態時,修改這個狀態比較方便,同時也容易被跟蹤。
Vuex的核心就是store,store的結構可以簡單示例如下:
// state用于存儲數據,mutation實現對state進行修改,action用來提交mutation,getter可以在組件外部獲取store文件中state中的值 const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment (state) { state.count++ } } })
用commit觸發一次mutation:
store.commit('increment')
但是需要注意的是,mutation 必須是同步函數, 執行action時,你可以異步調用一個mutation,只需在action中簡單地 commit 一下即可。
const actions = { incrementAsync ({ commit }) { setTimeout(() =>{ commit('increment') }, 1000) } }
這是一個簡單的Vuex的例子,掌握了一般的Vuex結構和使用方法后,我們可以根據實際情況靈活運用Vuex來管理一個vue.js應用的狀態。