gpt4 book ai didi

javascript - ReactJS - 组件状态和类变量有什么区别?

转载 作者:行者123 更新时间:2023-12-01 15:51:40 25 4
gpt4 key购买 nike

我认为它的工作方式不同,但我不知道它是如何工作的。
1.使用类变量

export default class Test extends Component {
constructor() {
this.active = false;
}

render() {
this.active = this.props.name === 'Dan'? true : false;
return (
<div>
{this.active? 'ssup?' : 'noooo'}
</div>
);
}
}

2. 使用 React 组件状态

export default class Test extends Component {
constructor() {
this.state = { active: false };
}

render() {
if(this.props.name === 'Dan') {
this.setState({active: true});
}
return (
<div>
{this.active? 'ssup?' : 'noooo'}
</div>
);
}
}

我认为如果它仅受收到的 Prop 影响,则不需要使用 State 重新渲染。

最佳答案

两者的区别在于 React 会在状态改变时重新渲染你的组件(使用 this.setState(/*...*/) )。

如果你更新了类变量,React 将不知道它并且不会重新渲染你的组件。

请注意,您在代码中实现的目标既不需要状态变量也不需要类变量。您只是直接从 Prop 计算另一个值。编写组件的更好方法是这样的:

export default class Test extends Component {
render() {
const active = this.props.name === 'Dan';
return (
<div>
{active? 'ssup?' : 'noooo'}
</div>
);
}
}

关于javascript - ReactJS - 组件状态和类变量有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54428219/

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