如果在React中将stateless functions用于仅用于哑渲染的组件,那么是否甚至需要PureRenderMixin?如果它仍然在现代容器/无状态React结构中起到某些作用,那是什么?
最佳答案
PureRenderMixin
对无状态组件和有状态组件都很有帮助,因为它使您可以选择在发生任何更改时取消更新。
默认情况下,无状态功能组件不是纯组件,它们只是“无状态”,这不是一回事。纯组件是在给定相同输入集(属性和状态)的情况下其渲染输出相同的组件。就像功能不一定是纯粹的(即它们可能会产生副作用)一样,功能组件也是如此。
他们可能依赖于关闭状态:
let state = { bar: true }
let Foo = (props) => <span {...props} {...state} />
或者更有可能道具不是一成不变的:
let List = props => (
<ul>{props.list.map(item => <li>{item}</li>)</ul>
)
其中
list
可以添加或删除项目而无需更改对数组的引用在任何情况下,仅由于组件是无状态且功能不同于默认情况下的纯组件。
要回答一个主要问题:不,它们不是过时的,因为JavaScript数据的可变性意味着您不能仅仅假设props是不可变的,因此不能默认为组件默认启用纯渲染优化,是否运作
关于reactjs - PureRenderMixin mixin现在过时了吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35390436/