[英]React, Should I set state from props?
我總是直接使用props而不將其設置為state,並且效果很好,但是我應該真正從props設置state,然后使用該狀態。 有什么不同?
Class A extends Component {
...some method,
render() {
return <>{this.props.message}</>
}
}
Class A extends Component {
constructor() {
super();
this.state = {
message: ''
}
}
componentDidMount(){
this.setState({message: this.props.message})
}
render() {
return <>{this.state.message}</>
}
}
如果值相同,則確實沒有必要。 考慮到每次使用this.setState()
都會導致組件的其他重新渲染。 付出的代價很小,但是如果您說10000條消息,那以后可能會意味着更多。 因此,通過更新state
不會提供任何好處。 只需直接使用道具即可。
如果您打算將道具用作中介檢查,則更新狀態會有些意義。 假設您有這樣的事情:
class App extends React.Component{
state = {
display: none
}
componentDidUpdate(){
if(this.props.data.length > 0){
this.setState({
display: true
})
}
}
render(){
<div>
{ this.state.display ? "Show value" : "" }
</div>
}
}
我們可以使用道具來更新狀態值,該狀態值確定是否應顯示某些內容。
最好使用props中的數據,而無需更新它來聲明僅添加2 3行代碼和setState函數的額外執行,但是用戶不會有任何不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.