哪种方法更好,为什么?可能会有更多的字段,而不仅仅是标题和优先级。
对所有更改单独执行操作:
const todoReducer = (state, action) {
switch (action.type) {
case 'CHANGE_TITLE' {
return { ...state, title: action.title }
}
case 'CHANGE_PRIORITY' {
return {...state, priority: action.priority}
}
}
}
拥有一个通用更新功能:
const todoReducer = (state, action) {
switch (action.type) {
case 'UPDATE_PROPERTY' {
return { ...state, [action.prop]: action.value }
}
}
}
答案 0 :(得分:1)
采取单独行动的好处是,您的代码将更具可读性,任何人都可以通过阅读来了解正在发生的事情。
switch (action.type) {
case 'CHANGE_TITLE' {
return { ...state, title: action.title }
}
case 'CHANGE_PRIORITY' {
return {...state, priority: action.priority}
}
}
就像你提供的例子一样,只需阅读动作,就可以很容易地知道减速器会做什么。
单独操作(我能想到的)的唯一缺点是,如果有太多的动作执行相同类型的更改,那么代码将变得非常冗长并且代码的DRYness将不会被维护。
因此,在这种情况下,您可以考虑创建通用操作并将其用于所有更改。因此,将来您需要进行一些更改,您将需要更改该操作。这是与编码中的DRY原理相关的好问题。 https://softwareengineering.stackexchange.com/questions/103233/why-is-dry-important
如果代码可读性不是很重要,并且您希望代码尽可能短并且还希望保持代码的干燥,那么您可以创建一般操作。
就性能而言,我认为它不会影响性能。