vue cli中使用vuex的方式

2021-08-19 20:38:09 字數 2753 閱讀 5588

一般來講,我們都會採用vue-cli來進行實際的開發,在vue-cli中,開發和呼叫方式稍微不同。

├── index.html

├── main.js

├── components

└── store

├── index.js

# 我們組裝模組並匯出 store 的地方

├── state.js

# 跟級別的 state

├── getters.js

# 跟級別的 getter

├── mutation-types.js

# 根級別的mutations名稱(官方推薦mutions方法名使用大寫)

├── mutations.js

# 根級別的 mutation

├── actions.js

# 根級別的 action

└── modules

├── m1.js

# 模組1

└── m2.js

# 模組2

state.js示例:

const state = ;

export

default state;

getters.js示例(我們一般使用getters來獲取state的狀態,而不是直接使用state):

export

const

name = (state) =>

export

const

age = (state) =>

export

const

other = (state) => , i am $.`;

}

mutation-type.js示例(我們會將所有mutations的函式名放在這個檔案裡):

export

const set_name = 'set_name';

export

const set_age = 'set_age';

mutations.js示例:

import * as types from './mutation-type.js';

export default ,

[types.set_age](state, age)

};

actions.js示例(非同步操作、多個commit時):

import * as types from './mutation-type.js';

export default , )

};

modules–m1.js示例(如果不是很複雜的應用,一般來講是不會分模組的):

export

default

, getters: {}

, mutations: {}

, actions: {}

};

index.js示例(組裝vuex):

import vue from

'vue';

import vuex from

'vuex';

import state from

'./state.js';

import * as getters from

'./getters.js';

import mutations from

'./mutations.js';

import actions from

'./actions.js';

import m1 from

'./modules/m1.js';

import m2 from

'./modules/m2.js';

import createlogger from

'vuex/dist/logger'; // 修改日誌

vue.use(vuex);

const debug = process.env.node_env !== 'production'; // 開發環境中為true,否則為false

export default

new vuex.store(,

plugins: debug ? [createlogger()] : // 開發環境下顯示vuex的狀態修改

});

最後將store例項掛載到main.js裡面的vue上去就行了

import store from './store/index.js';

new vue();

在vue元件中使用時,我們通常會使用mapgetters、mapactions、mapmutations,然後就可以按照vue呼叫methods和computed的方式去呼叫這些變數或函式,示例如下:

import  from 'vuex';

/* 只寫元件中的script部分 */

export

default ,

methods: ),

...mapactions([

nameasyn])}

};

**部落格:

vue cli的學習13 vuex的使用二

1 非同步操作 全部寫在actions中 actions只能呼叫mutations中的方法 不能直接修改 例子 actions 5000 2 非同步方法的呼叫 方法一 使用dispatch呼叫 asyncadd 方法二 使用輔助函式 mapactions asyncaddnum asyncreduc...

購物車中使用的vuex

新建乙個store資料夾,檔案下建立乙個index.js檔案,其中引入vue和vuex import vue from vue import vuex from vuex 不要忘記使用 vue.use vuex 匯出 export default new vuex.store 改變 不支援任何非同步...

vue專案中使用vuex

import vue from vue import vuex from vuex import mutations from mutations import actions from actions import getters from getters import from utils au...