【发布时间】:2017-04-26 00:26:25
【问题描述】:
我正在研究 ReactJS 并遇到了以下组件示例:
class MyComponent extends React.Component {
constructor(props) {
super(props);
// set the default internal state
this.state = {
clicks: 0
};
this.clickHandler = this.clickHandler.bind(this);
}
componentDidMount() {
this.refs.myComponentDiv.addEventListener(
‘click’,
this.clickHandler
);
}
componentWillUnmount() {
this.refs.myComponentDiv.removeEventListener(
‘click’,
this.clickHandler
);
}
clickHandler() {
this.setState({
clicks: this.clicks + 1
});
}
render() {
let children = this.props.children;
return (
<div className=”my-component” ref=”myComponentDiv”>
<h2>My Component ({this.state.clicks} clicks})</h2>
<h3>{this.props.headerText}</h3>
{children}
</div>
);
}
}
this.refs.myComponentDiv.removeEventListener() 和this.refs.myComponentDiv.removeEventListener() 中的第一个参数'click' 是什么意思?为什么你必须将props 传递给super()? () 在({this.state.clicks} clicks}) 中是什么意思?
最后,我遇到了一个无状态组件:
const StatelessCmp = (props) => {
return (
<div className=”my-stateless-component”>
{props.name}: {props.birthday}
</div>
);
};
// ---
ReactDOM.render(
<StatelessCmp name=”Art” birthday=”10/01/1980” />,
document.getElementById(“main”)
);
你什么时候选择使用无状态组件?你什么时候使用ReactDOM.render() 做什么,尤其是document.getElementById(“main”) 部分?因为通常情况下,您只需使用export default ...。
在下面,两个<p>'s 会简单地显示在<MyComponent/> 类的顶部吗?
<MyComponent headerText=”A list of paragraph tags”>
<p>First child.</p>
<p>Any other <span>number</span> of children...</p>
</MyComponent>
谢谢你,一定会支持并接受答案!
【问题讨论】:
标签: javascript reactjs ecmascript-6 react-jsx