更新器mutations:
今天來聊聊 Vuex 中的更新器mutations。
首先,我們可以把 Vuex 想像成一個超大倉庫,裡面儲存了我們整個應用程式的資料。而 mutations 就像是倉庫管理員,他負責處理倉庫裡的貨物,讓我們可以安全地進行修改或更新。
舉個例子來說,假如有一個簡單的購物車應用程式,需要一個方法來將商品加入到購物車中:
mutations: {
addToCart(state, product) {
state.cart.push(product);
}
}
這段程式碼中,定義了一個 mutation 叫做 addToCart
,它接收兩個參數,state
代表狀態機的state,在更新器中可以直接讀取或更新狀態的資料,product
則是定義使用更新器時,外部帶入的參數,在這個例子中,就等於我們要加入的商品。在這個例子中,把商品加到購物車的清單中。
接下來,可以呼叫這個 mutation:
methods: {
addToCart(product) {
this.$store.commit('addToCart', product);
}
}
這樣,當使用者在介面上點擊加入購物車按鈕時,就會呼叫這個方法,並觸發 addToCart
mutation。
總結來說,mutations 是用來修改或更新 Vuex 倉庫中的狀態資料的方法,它們負責處理倉庫中的資料變動,讓我們可以安全地進行修改。