Trong React, có sự khác biệt thực sự nào giữa hai triển khai này không? Một số người bạn nói với tôi rằng FirstComponent là mẫu, nhưng tôi không hiểu tại sao. SecondComponent có vẻ đơn giản hơn vì kết xuất chỉ được gọi một lần.
Đầu tiên:
import React, { PropTypes } from 'react'
class FirstComponent extends React.Component {
state = {
description: ''
}
componentDidMount() {
const { description} = this.props;
this.setState({ description });
}
render () {
const {state: { description }} = this;
return (
<input type="text" value={description} />
);
}
}
export default FirstComponent;
Thứ hai:
import React, { PropTypes } from 'react'
class SecondComponent extends React.Component {
state = {
description: ''
}
constructor (props) => {
const { description } = props;
this.state = {description};
}
render () {
const {state: { description }} = this;
return (
<input type="text" value={description} />
);
}
}
export default SecondComponent;
Cập nhật: Tôi đã thay đổi setState () thành this.state = {} (cảm ơn joews), tuy nhiên, tôi vẫn không thấy sự khác biệt. Là một trong những tốt hơn so với khác?
this.state = { isVisible: props.isVisible }
có ý nghĩa. Phụ thuộc vào cách ứng dụng phân phối trạng thái UI.