Javascript 在Redux操作中减少混乱的方法是什么?
在Redux中声明操作的常见模式是将常量指定给字符串Javascript 在Redux操作中减少混乱的方法是什么?,javascript,redux,Javascript,Redux,在Redux中声明操作的常见模式是将常量指定给字符串 const ACTION = 'ACTION'; 但在现实世界中,这种方法会使应用程序中的动作部分变得臃肿。很难添加和编写这样低级的东西。我自己看到并写了很多可笑的constants.jss,其中只包含绑定到常量的字符串。好吧,这让我觉得自己是个老派的人,但这是这种方法对我唯一的好处 我相信,对于实际应用来说,这不是一个好的模式 您如何声明和重用操作 为什么Redux库设计成这样?您可以使用Redux-ducks方案使您的操作/简化程序更加
const ACTION = 'ACTION';
但在现实世界中,这种方法会使应用程序中的动作部分变得臃肿。很难添加和编写这样低级的东西。我自己看到并写了很多可笑的constants.js
s,其中只包含绑定到常量的字符串。好吧,这让我觉得自己是个老派的人,但这是这种方法对我唯一的好处
我相信,对于实际应用来说,这不是一个好的模式
您如何声明和重用操作
为什么Redux库设计成这样?您可以使用Redux-ducks方案使您的操作/简化程序更加模块化和可维护。不再有充满动作类型的constants.js文件
至于重用动作,可以使用redux-thunk/saga创建动作链。通过这种方式,您可以多次重用操作。您可以使用redux ducks方案使您的操作/简化程序更加模块化和可维护。不再有充满动作类型的constants.js文件 至于重用动作,可以使用redux-thunk/saga创建动作链。通过这种方式,您可以多次重复使用操作。什么模式不是好模式?常数?弦 没有任何东西要求动作类型必须是字符串——这很简单。类型可以是符号、对象或任何其他可用于在代码中做出决策的内容 ,人类擅长阅读文本 查看该部分,例如,任何。什么是不好的模式?常数?弦 没有任何东西要求动作类型必须是字符串——这很简单。类型可以是符号、对象或任何其他可用于在代码中做出决策的内容 ,人类擅长阅读文本
查看该部分,例如。就我个人而言,即使是我声明常量文件时也非常恼火。这使我的项目变得臃肿,捆绑包的规模不断增加 我想说,如果你有一个减速机做相同的工作,不同的行动,你一定要看看。该链接来自redux文档本身 我将尝试通过以下代码来解释这一点 假设你有一个常量文件,我在其中
export default RECEIVE_DICT_2 = 'RECEIVE_DICT_2'
export default RECEIVE_DICT_1 = 'RECEIVE_DICT_1'
假设你有一个减速机
第一减速器
第二减速器
现在,如果您看到两个reducer执行完全相同的操作,但是在调度操作时,您需要指定每个键,因为我们在常量中指定了它
所以你的行动会是
firstAction(dict){
return {
action:'RECEIVE_DICT_1',
dict
}
}
secondAction(dict){
return {
action:'RECEIVE_DICT_2',
dict
}
}
显然,这是太多的代码膨胀。所以在这里我们可以使用高阶减缩器,然后扔掉常量文件
现在你的减速机是这样的
export default function parentReducer(code){
return function commons(state = state,action){
switch(action.type){
case `RECEIVE_DICT_${code}`:
return Object.assign({},state,{
dict : action.dict
})
}
}
}
我希望你明白了。你可以在我上面分享的链接中了解更多信息。就我个人而言,即使我对声明常量文件感到非常恼火。这使我的项目变得臃肿,捆绑包的规模不断增加 我想说,如果你有一个减速机做相同的工作,不同的行动,你一定要看看。该链接来自redux文档本身 我将尝试通过以下代码来解释这一点 假设你有一个常量文件,我在其中
export default RECEIVE_DICT_2 = 'RECEIVE_DICT_2'
export default RECEIVE_DICT_1 = 'RECEIVE_DICT_1'
假设你有一个减速机
第一减速器
第二减速器
现在,如果您看到两个reducer执行完全相同的操作,但是在调度操作时,您需要指定每个键,因为我们在常量中指定了它
所以你的行动会是
firstAction(dict){
return {
action:'RECEIVE_DICT_1',
dict
}
}
secondAction(dict){
return {
action:'RECEIVE_DICT_2',
dict
}
}
显然,这是太多的代码膨胀。所以在这里我们可以使用高阶减缩器,然后扔掉常量文件
现在你的减速机是这样的
export default function parentReducer(code){
return function commons(state = state,action){
switch(action.type){
case `RECEIVE_DICT_${code}`:
return Object.assign({},state,{
dict : action.dict
})
}
}
}
我希望你明白了。你可以在我上面分享的链接中了解更多信息。>什么是不好的模式?常数?串?不,一般来说,编写一系列样板文件,包括contsants和action创建者。感谢您提供的链接,也就是说,
类型
字段应该是可序列化的,以确保时间旅行调试正常工作,字符串工作得最好,因为它们都是可序列化和可读的。有关更多信息,请参阅。>什么是不好的模式?常数?串?不,一般来说,编写一系列样板文件,包括contsants和action创建者。感谢您提供的链接,也就是说,类型
字段应该是可序列化的,以确保时间旅行调试正常工作,字符串工作得最好,因为它们都是可序列化和可读的。有关更多信息,请参阅。很好,您使用ES2015字符串模板的想法在某些情况下会有所帮助。很好,您使用ES2015字符串模板的想法在某些情况下会有所帮助。