vuex是vue.js應用設計的狀態管理架構,通俗理解,可以想象就是vue元件中的data
1.state=>基本資料來源
// 簡單的state
const store =
newvuex.store(,
})
2.mutatios=>提交更改資料的方法(同步)
// 儲存
// 第乙個引數是vuex中對應mutation的方法,第二個值就是存入vux中的值
this
.$store.
commit
('settargetuser'
,friend)
;// 取值
this
.$store.state.settargetuser
mutation小案例
// 倉庫內容
state:,}
,//修改資料的方法
mutations:}}
// 在vue檔案中
// 存到vux裡,對vuex資料進行修改
this
.$store.
commit
('changeuserinfo'
,res.data.data)
3.actions=>類似乙個容器,包裹mutations,讓木塔同時可以非同步
//儲存
this
.$store.
dispatch
('settargetuser'
,friend)
;//取值
this
.$store.getters.targetuser;
// 倉庫中
// action 類似於 mutation,不同在於:
// action 提交的是 mutation,而不是直接變更狀態。
// action 可以包含任意非同步操作。
mutations:
,somemutation
(state)
,1000)}
},actions:},
//另一種寫法
actions:
,args)
}// vue頁面中
methods:
},
4.getters=>基本資料派生的資料
從store的state中派生出的狀態。
getters接收state作為其第乙個引數,接受其他 getters 作為第二個引數,如不需要,第二個引數可以省略如下例子:
const store =
newvuex.store(,
getters:
,// 兩個引數
countdoubleanddouble:
function
(state, getters)}}
)------
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
--和state一樣,可以通過vue的computed獲得vuex的getters。
newvue(,
countdouble:
function()
, countdoubleanddouble:
function()
},//..})
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
mapgetters 輔助函式
mapgetters 輔助函式僅僅是將 store 中的 getters 對映到區域性計算屬性,與state類似
import
from
'vuex'
export
default}--
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
--如果你想將乙個 getter 屬性另取乙個名字,使用物件形式:
mapgetters
()
5.modules=>模組化vuex Vuex的核心概念
state 提供唯一的公共資料源,所有共享的資料都要統一放到 store 的 state 中進行儲存。建立store資料來源,提供唯一公共資料 const store newvuex.store 1.1 元件訪問 state 中資料的第一種方式 this store.state.全域性資料名稱1.2...
Vuex核心概念Mutation Action
newvuex.store mutations commit increment mutations commit increment 10 mutations commit increment commit 當需要在物件上新增新屬性時,你應該 以新物件替換老物件。例如,利用 stage 3 的物件...
vuex的5個核心概念三(actions)
4.actions 非同步操作 在某些情況下確實在vuex中需要進行非同步操作,比如網路請求,這個時候就要將方法寫在actions中 actions類似於mutations,但是是用來替代mutations進行非同步操作的 在actions中提交mutation,並且可以包含任何的非同步操作。act...