🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Action State 的变化,会导致 View 的变化。但是,用户接触不到 State,只能接触到 View。所以,State 的变化必须是 View 导致的。Action 就是 View 发出的通知,表示 State 应该要发生变化了。 ## 使用 Action 改变 State Action 是一个对象。其中的type属性是必须的,表示 Action 的名称。其他属性可以自由设置,社区有一个规范可以参考。 ```js const action = { type: 'ADD_TODO', payload: 'Learn Redux' }; ``` 上面代码中,Action 的名称是ADD_TODO,它携带的信息是字符串Learn Redux。 可以这样理解,Action 描述当前发生的事情。改变 State 的唯一办法,就是使用 Action。它会运送数据到 Store。 使用 dispatch 提交一个 Action 刚才定义了一个 action,可以使用 dispatch 提交之,以下几种写法是等价的: 写法一: ```js store.dispatch({ type: 'ADD_TODO', text: 'Learn Redux' }); ``` 写法二: ```js const action = { type: 'ADD_TODO', payload: 'Learn Redux' }; store.dispatch(action) ``` 写法三: ```js function addTodo (text) { return { type: 'ADD_TODO', payload: text } } store.dispatch(addTodo('Learn Redux')) ``` 其中方法三也就是下面要介绍的 Action Creators