state 和 props 主要的区别在于 props 是不可变的,而 state 可以根据与用户交互来改变。这就是为什么有些容器组件需要定义 state 来更新和修改数据。 而子组件只能通过 props 来传递数据。
class WebSite extends React.Component {
constructor() {
super();
this.state = {
name: "小李",//state里面的属性是可以改变的
site: "https://www.baidu.com"
}
}
render() {
return (
<div>
<Name name={this.state.name} />//使用state里面的属性的属性值
<Link site={this.state.site} />
</div>
);
}
}
class Name extends React.Component {
render() {
return (
<h1>{this.props.name}</h1>//props只能用于传值,将组件Name中的name属性传递给h1标签
);
}
}
class Link extends React.Component {
render() {
return (
<a href={this.props.site}>
{this.props.site}
</a>
);
}
}
ReactDOM.render(
<WebSite />,
document.getElementById('example')
);