有關vuex

Vuex 是一個專門爲 Vue 應用程序開發的狀態管理模式,適合開發大型單頁應用, 它可以更好的在組件外部管理狀態javascript

重要文件版本。vue

每個 Vuex 應用的和興就是 store(倉庫)。store 基本上就是一個容器,它包含着應用中大部分的狀態(state) Vuex 和單純的全局對象有如下不一樣:java

  1. Vuex的狀態儲存是響應式的,當 Vue 組件從 store 中讀取狀態時,若store中的狀態發生變化,那麼相應的組件也會獲得高效更新
  2. 不能直接改變 store 中的狀態,改變 store 中狀態的惟一途徑就是顯式的提交(commit)mutation 這樣能夠更方便的跟蹤狀態的變化

vuex中的state、action、mutation的關係。python

state負責存儲整個應用的狀態數據,要注意在入口文件main.js注入store對象,就能夠在根組件下的子組件使用this.$store.state獲取狀態了。 mutation裏面寫着改變狀態數據的方法(必定要寫在這裏),mutation是同步事件要注意,裏面的方法不能寫異步的,組件中觸發一個mutation的方法store.commit(mutationName)。 action也是一個改變狀態數據的事件,但不一樣的是action改變狀態是經過調用mutation來實現的,注意action是個異步事件。直接觸發action就使用this.$store.dispatch(actionName)。

三,vuex的簡單使用sql

1,下載安裝vuex

npm install --save vuex //注意要帶save

2,src目錄下建文件夾和文件結構是src/store/store.js,store.js代碼以下:express

import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const store = new Vuex.Store({ state: { count: 0 }, mutations: { increase (state) { state.count++ } }, actions: { actionIncrease ({commit}) { commit('increase') } } }) export default store

3,在入口文件main.js引入,並掛載到根節點npm

import Vue form 'vue'; import Vuex from 'vuex'; import store from './store/store.js' Vue use(Vuex); new Vue({ el: '#app', store, template: '<App/>', components: { App } })

4,子組件調用狀態值count,並經過點擊觸發action提交mutation來增長數值 
子組件模板:app

<template> <span>{{count}}</span> <button @click="add">增長數值</button> </template> <script> export default { computed:{ count () { return this.$store.state.count; } }, methods: { add() { this.$store.dispatch('actionIncrease') } } }; </script>
ok,以上就是vuex的簡單使用了,別的組件如需調用或修改vuex的數據狀態也依此法使用。
相關文章
相關標籤/搜索