redux 优化 => action creator 和 Action Type 的使用

action creator

问题导入

dispatch({type: 'book/add', payload: '三国演义'})
dispatch({type: 'book/add', payload: '红楼梦'})

 一个action的type名字出现多次,多次dispatch会重复,不利于修改。

解决方式

补充一个action creator。

  • 它是一个函数。

  • 作用:用来创建指定类型的action。

  • 入参:payload

  • 返回值: action

const addAction = (payload) => ({type: 'book/add', payload})
dispatch(addAction('三国演义'))
dispatch(addAction('红楼梦')) 

Action Type

问题导入

在reducer和action creator中都用到了一个字符串的 action type。

容易写错,不利于统一修改

解决方式 

集中处理 action type,保持项目中 action type 的一致性

处理方式:

  1. 在 store 目录中创建 actionTypes 目录或者 constants 目录,集中处理

  2. 使用常量来存储 action type。例如

export const SET_NAME = 'user/setName'
export const SUB_MORE = 'money/subMore' 

3. 将项目中用到 action type 的地方替换为这些常量,从而保持项目中 action type 的一致性  

猜你喜欢

转载自blog.csdn.net/weixin_58726419/article/details/121340324