React在构造函数中具有实例属性和状态属性。
实例属性 - 它不会重新渲染视图。用于存储值。 State属性 - 存储并重新呈现视图。
除了上述任何其他原因或差异,或何时应该在React类组件的构造函数中使用实例和状态?。
示例:
class example extends Component{
constructor(){
this.state = {
name: 'albert'
};
this.name = 'albert';
}
}
答案 0 :(得分:1)
当组件状态发生变化时,它会触发组件重新呈现(如果它未在shouldComponentUpdate()中设置为忽略)。
更改实例属性不会触发重新渲染。
答案 1 :(得分:1)
两者的简单区别是视图部分渲染。 EX:当状态更新时,视图也会更新。有时候视图不需要重新加载,我们可以将值存储在组件实例中,就像你提到的那样 this.name 。
请查看以下链接,了解有关州和实例的更多信息 https://medium.freecodecamp.org/where-do-i-belong-a-guide-to-saving-react-component-data-in-state-store-static-and-this-c49b335e2a00
答案 2 :(得分:1)
这取决于您的要求,您在其中存储的数据类型。
当更新任何状态变量时,请回复调用render
以对DOM元素进行更改,因此如果要在DOM中进行任何更改,则应使用state
否则为实例。
当您只想保存一些数据以用于UI处理,计算等时,目前的最佳做法是使用本地状态来处理状态 您的用户界面(UI)状态而不是数据。
和实例属性。 请查看此参考react-components-elements-and-instances以获取更多详细信息
答案 3 :(得分:0)
每当更新状态时,react会调用render()
方法来更新带有所需更改的DOM,并且应始终使用setState()
进行更新。实例变量对块级操作很有用,然后在需要时更新状态。因此,如果要重新呈现DOM使用状态变量,请使用实例变量。