为了账号安全,请及时绑定邮箱和手机立即绑定

React 最佳实践:在组件中具有“状态”以外的属性

React 最佳实践:在组件中具有“状态”以外的属性

白衣非少年 2022-08-27 09:28:25
我正在审查一个 React 组件,它包含一个属性和一个属性。stateallData要遵循最佳实践,不应该是 的一部分吗?allDatastateconstructor(props) {    super(props);    this.allData = [];    this.state = {      allDisplayedData: [],      allRowsCount: -1,      favData: [],      favRowsCount: -1,    };    this.searchAll = this.searchAll.bind(this);    this.handleCellClick = this.handleCellClick.bind(this);  }
查看完整描述

3 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

如果希望组件在更改时重新呈现,则需要处于状态,否则将其放在任何位置。除其他任何实例变量都不是 React 控制的一部分,因此它们没有相同的使用 setState 进行设置的能力。这意味着它们不会像状态那样重新呈现组件。this.state

从本质上讲,这取决于你用它做什么以及你想如何使用它。

我倾向于将此模式用于取消标记和 intervalIds 等内容,以及我以后可能需要的其他数据,但不需要将其用作状态的一部分,因为它仅在卸载或更新时需要,但在渲染本身中不需要。

如果在渲染中需要它,则应使其处于状态,或者准备好在更新时处理未呈现的组件。


查看完整回答
反对 回复 2022-08-27
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

如果要使数组成为状态的一部分,那么 yes,if no,则 no。


查看完整回答
反对 回复 2022-08-27
?
慕容3067478

TA贡献1773条经验 获得超3个赞

除了之前的两个详细答案,我在 https://reactjs.org/docs/state-and-lifecycle.html

虽然 this.props 是由 React 自己设置的,而且 this.state 有特殊的含义,但如果你需要存储不参与数据流的东西(比如计时器 ID),你可以自由地手动向类中添加其他字段。


查看完整回答
反对 回复 2022-08-27
  • 3 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号