gpt4 book ai didi

javascript - 为什么突变会使 react 组件本身不可重用?

转载 作者:行者123 更新时间:2023-12-02 22:18:28 25 4
gpt4 key购买 nike

所以我正在阅读 HOC 上的 React 文档(在这里找到: https://reactjs.org/docs/higher-order-components.html ),其中有这一部分:

“抵制在 HOC 内修改组件原型(prototype)(或以其他方式改变它)的诱惑。”

function logProps(InputComponent) {
InputComponent.prototype.componentWillReceiveProps = function(nextProps) {
console.log('Current props: ', this.props);
console.log('Next props: ', nextProps);
};
// The fact that we're returning the original input is a hint that it has
// been mutated.
return InputComponent;
}

// EnhancedComponent will log whenever props are received
const EnhancedComponent = logProps(InputComponent);

“这有一些问题。其中之一是输入组件不能与增强组件分开重用。”

为什么变异的输入组件不被认为是可重用的,而包装的组件却是可重用的?

编辑:如果您认为文档的这一部分只是无稽之谈,如果有一些解释,我会接受它作为答案。

最佳答案

修改InputComponent的原型(prototype)改变了 InputComponent 的定义,并且 if 影响 InputComponent 的每个实例.

如果您以私有(private)的、封装的方式修改原型(prototype)——即以无人知晓的方式——那么没有人知道 InputComponent 是什么。已经不再存在,因此他们无法可靠地使用它。

关于javascript - 为什么突变会使 react 组件本身不可重用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59311068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com