Reactでは、これら2つの実装の間に実際の違いはありますか?一部の友人は、FirstComponentがパターンだと言っていますが、その理由はわかりません。レンダリングが1回だけ呼び出されるため、SecondComponentはより単純に見えます。
最初:
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;
第二:
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;
更新:setState()をthis.state = {}に変更しました(ジョーズ、ありがとう)。しかし、まだ違いはわかりません。他の1つより優れていますか?
this.state = { isVisible: props.isVisible }
は理にかなっていると思います。アプリがUI状態をどのように配布するかによって異なります。