淺談vue使用vuex

前言:對(duì)于只是維護(hù)vue項(xiàng)目的我接觸到了vuex,看完之后我對(duì)vuex的印象和redux的使用方法差不多,下面我們來(lái)說(shuō)一下關(guān)于vuex的具體使用
1.vuex文件定義(通常放在根目錄store文件夾modules文件夾下),文件內(nèi)部格式為
image.png

對(duì)上圖進(jìn)行解析:
state:用于存儲(chǔ)變量,外部使用vuex中的值時(shí)也是直接引用state即可
mutations:可以理解為拿到需要設(shè)置的值之后來(lái)更新?tīng)顟B(tài)管理器中的state的值
actions:可以理解為需要觸發(fā)的行為,外面使用vuex時(shí)首先經(jīng)過(guò)的是actions中對(duì)應(yīng)的行為,然后該行為會(huì)指向?qū)?yīng)的mutations來(lái)更新state中對(duì)應(yīng)變量的值

2.store下面新建index.js用于將所有的狀態(tài)文件引入然后通過(guò)vuex構(gòu)造函數(shù)拋出,供外部使用
import Vue from 'vue'
import Vuex from 'vuex'
import app from './modules/app'
Vue.use(Vuex)

const store = new Vuex.Store({
    modules: {
        app,
    }
})

export default store

使用的時(shí)候有兩種使用方法

  1. 通過(guò)先出觸發(fā)actions然后觸發(fā)mutations來(lái)改變state
  2. 直接觸發(fā)mutations來(lái)改變state

我們先來(lái)說(shuō)一下第一種使用方法

image.png
import store from '@/store'
更新state
store.dispatch('ToggleDevice', 'mobile')
第一個(gè)參數(shù)是對(duì)應(yīng)定義的store文件中actions里面的行為
第二個(gè)參數(shù)是需要更新的state的值

觸發(fā)actions對(duì)用的行為之后后接著觸發(fā)mutations里面的從而更新對(duì)應(yīng)state里面的值

第二種使用方法

image.png
this.$store.commit('contract/setBaseClauseGroupItemsInfo', res.data.clause_group_item_info)

第一個(gè)變量是使用的哪個(gè)store下的哪個(gè)mutations中的事件,第二個(gè)是你需要更新的state的值

無(wú)論哪種方式使用store中的state都是一樣的

引入
import { mapState } from 'vuex'
computed: {
 ...mapState('contract', {
            buildingId: state => state.buildingId,
            contractType: state => state.contractType,
            operationType: state => state.operationType,
            clauseGroupItemsInfo: state => state.clauseGroupItemsInfo,
            costItems: state => state.costItems,
            isRounding: state => state.isRounding,
            addChild: state => state.addChild
        }),
}

contract就是你需要引用的狀態(tài)管理器的命名,這里的contract注意const的變量最好和文件名保持一致,在頁(yè)面中需要使用的變量就羅列出來(lái),比如這個(gè)地方的buildingId,contractType,operationType等等,頁(yè)面中使用直接this.即可

生活就是不斷的積累 奧力給

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 目錄: 核心概念使用方法及場(chǎng)景:statemutationsactionsgetters 多頁(yè)面公用vuex實(shí)例在...
    Qingelin閱讀 589評(píng)論 0 1
  • vuex是使用vue中必不可少的一部分,基于父子、兄弟組件,我們傳值可能會(huì)很方便,但是如果是沒(méi)有關(guān)聯(lián)的組件之間要使...
    壞丶毛病閱讀 4,012評(píng)論 0 18
  • vuex是使用vue中必不可少的一部分,基于父子、兄弟組件,我們傳值可能會(huì)很方便,但是如果是沒(méi)有關(guān)聯(lián)的組件之間要使...
    乙哥驛站閱讀 1,649評(píng)論 0 0
  • vuex是使用vue中必不可少的一部分,基于父子、兄弟組件,我們傳值可能會(huì)很方便,但是如果是沒(méi)有關(guān)聯(lián)的組件之間要使...
    蘇樹(shù)旺_三月閱讀 2,635評(píng)論 0 1
  • 前言 接觸vue框架也有一個(gè)多月的時(shí)間了,整理下之前做過(guò)的一個(gè)小demo,主要是熟悉vue全家桶技術(shù),界面布局模仿...
    視覺(jué)派Pie閱讀 26,641評(píng)論 20 285