我对React和Redux使用Object.assign
有些疑惑。在React/Redux中使用Object.assign或Spread运算符?哪一个更好的做法
我看了这个article。
它说ES6不支持所有的浏览器,但我已经开始使用它。
我有两个问题:
- 是不是一个正确的决定,继续
Object.assign
? - 有什么选择?
我的代码
export const selectDiameter = (scaleData, size) => {
return {
type: SELECT_DIAMETER,
payload: Object.assign({}, scaleData, {
diameter: Object.assign({}, scaleData.diameter, {
selected_tube_diameter: size,
is_clicked: true,
audio: Object.assign({}, scaleData.diameter.audio, {
is_played: true
})
})
})
}
}
什么是上面的代码替代?
redux指南特别提到使用[object rest spread transform](https://babeljs.io/docs/plugins/transform-object-rest-spread/)而不是'Object.assign' http://redx .js.org/docs/recipes/UsingObjectSpreadOperator.html –
rest-spread是另一种选择(看起来更好)。无论哪种方式,如果您使用的是ES6,您现在无论如何都需要将其转换为ES5。 –
不相关,但请在代码中使用一些空格,以便清晰。也是无关的,但JS约定使用camelCase,例如'selectedTubeDiameter'而不是蛇'case selected_tube_diameter'。当你只是把东西倒入你控制的空对象时,使用Object.assign没有任何意义。 –