为什么反模式让反应组件编辑自己的道具?

Mik*_*e W 4 anti-patterns reactjs

我正在寻找另一个问题的答案,我找到了这个答案(链接)我只是很好奇为什么修改自己的道具是一种反模式,为什么修改自己的状态不是和反模式?

Bla*_*son 6

在 react 中,props是组件生命周期中不太可能发生变化的数据对象,state是组件生命周期中可能发生变化的数据。

它有助于为开发人员应该将可以/不可以更改的东西放在哪里创建明确的规则。

通过确切地知道数据更改将严格来自父级(作为道具)或作为状态在内部发生,React 可以非常快速地更新页面。

如果 state/props 相同,则确切的函数会松散地检查,然后https://github.com/facebook/react/blob/master/src/renderers/shared/stack/reconciler/ReactCompositeComponent.js#L881-L883

我建议阅读有关如何“协调”数据以进行更改和更新 dom 的内容。 https://facebook.github.io/react/docs/reconciliation.html