redux js中事件的命名约定
Redux将为状态更改分派操作。redux中动作类型的命名约定是什么?社区中有一些约定,我将在这里列出我知道并认为有用的约定:redux js中事件的命名约定,redux,Redux,Redux将为状态更改分派操作。redux中动作类型的命名约定是什么?社区中有一些约定,我将在这里列出我知道并认为有用的约定: 最常见的约定是将中的动作类型(“事件类型”)保持不变 这样可以避免拼写错误,其中操作的类型为my\u type,而reducer需要的类型为my type或my\u type 另一个非常常见的约定是将动作类型作为常量保存在单独的文件中,例如var MY_action_TYPE='MY_action_TYPE',并从那里使用它们 这也避免了拼写错误,因此您不希望操作的类型
中的动作类型(“事件类型”)保持不变
这样可以避免拼写错误,其中操作的类型为my\u type
,而reducer需要的类型为my type
或my\u type
var MY_action_TYPE='MY_action_TYPE'代码>,并从那里使用它们
这也避免了拼写错误,因此您不希望操作的类型为MY\u action\u TYP
。如果变量不存在,您将立即得到一个错误,特别是如果您正在进行linting
var MY\u action\u TYPE='appname/domain/MY\u ACTIONTYPE'
这避免了两个动作常数具有相同值的情况。例如,假设您有一个管理区域和面向用户的区域,两个区域都有发送'CHANGE\u USERNAME'
操作类型的表单。这将使两个减速器采取相同的行动,其中一个不应采取另一个。这可能发生在事故中,追踪起来非常烦人。通过使用app和域名作为前缀,可以避免这个问题:'appname/admin/CHANGE\u USERNAME'
不同于'appname/user/CHANGE\u USERNAME'
这就是我所知道和使用的所有约定,但我相信其他人还有更多约定——您在项目中使用了哪些约定并发现了哪些约定有用?还有一些关于命名异步操作类型的约定。如果您有一组操作来表示获取用户的api调用,则可以将它们拆分为如下内容:
-用于首次发送api调用的时间FETCH\u USER\u REQUEST
-用于api调用完成并成功返回数据的时间FETCH\u USER\u SUCCESS
-当api调用失败并响应错误时FETCH\u USER\u FAIL
-有时在呼叫结束时使用,无论状态如何FETCH\u USER\u COMPLETE
- 有一种新的模式可以解决这个问题
它将减速器组成的思想进一步推进。而不是用一个文件来表示减速机并创建单独的操作函数
redux auto的方法是让文件夹中包含表示状态上每个操作/转换的单独JS文件,并将其作为函数动态公开
范例
└── store/
├──user/
│ └── index.js
│ └── changeName.js
└──posts/
└── index.js
└── delete.js
现在,不管怎样,你都可以在应用程序中编写
import actions from 'redux-auto'
...
actions.user.changeName({name:"bob"})
store/user/changeName.js
export default function (user, payload) {
return Object.assign({},user,{ name : payload.name });
}
就是这样
如果您想在第三方还原程序中侦听redux操作。您可以使用此功能作为松散质量检查
action.type == actions.user.changeName // "USER/CHANGENAME"
对于更高级的内容,您甚至可以看到某个操作是否属于特定的还原程序
// Returns true if it's an action specifically for user
if(action.type in actions.user)
您可以在上阅读更多内容,请参阅Redux官方样式指南:
app/reducername/ACTION\u类型
更改为app/modulename/ACTION\u类型
或app/domain/ACTION\u类型
,以明确还原者和操作创建者可能属于一个组,但操作不属于特定的还原者。