在Vue中,我們可以通過action來傳遞參數。Action是一個將前端數據發送到后臺的函數,我們可以在該函數中添加需要傳遞給后臺的數據,以實現前后端數據傳遞。下面我們來詳細介紹如何使用action傳遞參數。
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
count: 0
},
mutations: {
increment (state) {
state.count++
}
},
actions: {
incrementAsync ({ commit }, payload) {
setTimeout(() =>{
commit('increment')
console.log(payload)
}, 1000)
}
}
})
首先我們需要在Vue中引入Vuex,并在store中定義我們需要的state、mutations和actions。在上面的代碼中,我們定義了一個名稱為incrementAsync的action,該函數內部使用了setTimeout函數模擬異步操作,并將需要傳遞的參數payload打印到控制臺中。
<template>
<div>
<p>{{ count }}</p>
<button @click="increment">+1</button>
<button @click="incrementAsync">+1(異步)</button>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
props: {
msg: String
},
computed: {
count () {
return this.$store.state.count
}
},
methods: {
increment () {
this.$store.commit('increment')
},
incrementAsync () {
this.$store.dispatch('incrementAsync', { message: 'Hello, World!' })
}
}
}
</script>
在組件中,我們可以通過Vue實例中的$store屬性來訪問store中定義的state、mutations和actions。在上面的代碼中,我們定義了兩個按鈕,一個是用來調用mutations中的increment函數,另一個則是調用actions中的incrementAsync函數。在調用incrementAsync函數時,我們向該函數傳遞了一個對象{ message: 'Hello, World!' }作為參數,這個參數會通過payload參數傳遞給后臺。
接下來,我們打開控制臺,可以看到在1秒鐘之后,我們傳遞的參數被打印到了控制臺中:
{ "message": "Hello, World!" }
至此,我們就成功地使用actions傳遞了參數,并將參數打印到了控制臺中。
上一篇6 vue怎么寫
下一篇python 添加請求頭