使用有状态模式,我通常在我的构造函数中初始化一种辅助类,并在一些组件生命周期方法中使用它的方法,如下所示:
class StatefulComponent extends Component {
constructor(props) {
super(props);
this.helper = new HelperClass();
}
componentDidMount() {
this.helper.doSomething();
}
}
现在,我想将相同的逻辑转换为像这样的无状态函数组件:
const StatelessFunction = (props) => {
this.helper = new HelperClass();
useEffect(() => {
this.helper.doSomething();
}, []);
}
但是当我看到这个组件从一开始的每个 prop 变化都会被调用时,我很担心。这让我觉得我的类实例被一遍又一遍地创建。我错了吗?我能做些什么来防止重新创建我的class并改用 ref 吗?
我遇到了useRef但不确定它是否适合我的情况。