欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue的mutation函數(shù)

錢琪琛2年前8瀏覽0評論

在Vue中,mutation函數(shù)是指用來管理應(yīng)用程序狀態(tài)的方法。通過mutation函數(shù),我們可以改變狀態(tài),并且所有的狀態(tài)變更都要從這里開始。

mutation函數(shù)通常是一些簡單的方法,它們接收當(dāng)前狀態(tài)和一個payload參數(shù)。這個payload包含了我們打算用來改變狀態(tài)的信息。

const mutations = {
setUserName (state, payload) {
state.userName = payload
}
}

上面的代碼中,我們定義了一個叫做setUserName的mutation函數(shù),它接收一個狀態(tài)參數(shù)state和一個包含新用戶名的payload參數(shù)。該函數(shù)采用ES6的語法結(jié)構(gòu)(state, payload) =>{},將狀態(tài)參數(shù)與payload參數(shù)解構(gòu)出來,然后將新的用戶名設(shè)置到狀態(tài)中。

事實上,mutation函數(shù)通常是一個同步的操作。我們不能在mutation函數(shù)中發(fā)出異步請求,否則我們將會遇到一些奇怪的問題。因為Vuex總是嚴(yán)格遵循“單一狀態(tài)樹”原則,也就是說,所有的變更必須通過mutation函數(shù)來處理。

const mutations = {
increment (state, payload) {
state.count += payload
}
}

如果我們想要在mutation函數(shù)中響應(yīng)一些狀態(tài)變化,則需要通過Vue的組件機制來實現(xiàn)。這樣做非常簡單,只需要使用commit方法,將我們的mutation函數(shù)名稱和payload參數(shù)傳遞給它即可。

// main.js
import Vue from 'vue'
import App from './App.vue'
import store from './store'
Vue.config.productionTip = false
new Vue({
store,
render: h =>h(App),
}).$mount('#app')
// App.vue
export default {
name: 'App',
computed: {
count () {
return this.$store.state.count
}
},
methods: {
increment () {
this.$store.commit('increment', 5)
}
}
}

在上述代碼中,我們從store對象中導(dǎo)入Vue中間件,并在Vue實例中注冊。下一步,我們導(dǎo)入的根組件文件中,訪問狀態(tài)的方法就是通過computed計算屬性進(jìn)行,也就是進(jìn)行映射,映射到vuex中的計數(shù)器。同時,我們可以定義一個命名為increment的方法,然后在這個方法中通過this.$store.commit('increment', 5)來調(diào)用vue中的action函數(shù),實現(xiàn)了一次計數(shù)的加5操作。

總而言之,我們可以利用mutation函數(shù)來管理我們應(yīng)用程序的狀態(tài),而使用Vuex可以使整個過程變得更加容易和可復(fù)用。雖然mutation函數(shù)很簡單,但是它在Vuex中的意義卻非常重大。?