vue store存儲commit和dispatch
this.$store.commit('toShowLoginDialog', true);
this.$store.dispatch('toShowLoginDialog',false)
主要區別是:
dispatch:含有異步操作,例如向后台提交數據,寫法: this.$store.dispatch('mutations方法名',值)
commit:同步操作,寫法:this.$store.commit('mutations方法名',值)
例如:登錄成功后讀取用戶信息寫到coikie里
===============
Vue的項目中,如果項目簡單, 父子組件之間的數據傳遞可以使用 props 或者 $emit 等方式 進行傳遞
但是如果是大中型項目中,很多時候都需要在不相關的平行組件之間傳遞數據,並且很多數據需要多個組件循環使用。
這時候再使用上面的方法會讓項目代碼變得冗長,並且不利於組件的復用,提高了耦合度。
Vue 的狀態管理工具 Vuex 完美的解決了這個問題。
npm install vuex --save
然后在src目錄下新建文件夾store,在文件夾內新建store.js文件,這個文件我們用來組裝模塊並導出 store 的文件
在main.js文件中注冊store
import store from './store/store'
new Vue({
el: '#app',
router,
store,
template: '<App/>',
components: { App }
})