编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

在 Vuex 中,store(vue $store用法)

wxchong 2024-08-04 02:44:15 开源技术 13 ℃ 0 评论

在 Vuex 中,store.dispatch 方法用于触发 action。action 负责处理异步操作并提交 mutation 来更新状态。

要向 store.dispatch 传递参数,可以使用以下两种方式:

1. 使用对象字面量

JavaScript

this.$store.dispatch('actionName', {

payload: {

// 参数数据

}

})

例如,以下代码将向 updateTodo action 传递一个包含 ID 和新完成状态的对象:

JavaScript

this.$store.dispatch('updateTodo', {

id: 1,

completed: true

})

2. 使用数组

JavaScript

this.$store.dispatch('actionName', [

payload1,

payload2,

// ... 其他参数

])

例如,以下代码将向 incrementCount action 传递两个参数:

JavaScript

this.$store.dispatch('incrementCount', [10, 20])

action 中的参数访问

在 action 中,可以使用 context 对象来访问传递的参数。context 对象具有以下属性:

commit: 用于提交 mutation

state: 用于获取当前状态

getters: 用于获取 getters

dispatch: 用于分发其他 action

要访问传递的参数,可以使用 context.payload 属性。context.payload 是一个对象,包含 action 收到的所有参数。

例如,以下代码将从 updateTodo action 中获取传递的参数:

JavaScript

export default {

updateTodo({ commit, state, payload }) {

const { id, completed } = payload

// 更新状态

commit('UPDATE_TODO', {

id,

completed

})

}

注意事项

务必确保 action 的第一个参数是 context 对象。

只能向 action 传递一个对象或数组作为参数。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表