事件处理示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>state</title>
</head>
<body>
<div id="example"></div>
<script src="https://cdn.jsdelivr.net/npm/react@16.14.0/umd/react.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react-dom@16.14.0/umd/react-dom.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@babel/standalone@7.23.2/babel.min.js"></script>
<script type="text/babel">
class MyButton extends React.Component {
constructor(props) {
super(props);
this.click = this.click.bind(this);
}
click() {
alert(this.props.title);
}
render() {
return <button onClick={this.click}>{this.props.title}</button>;
}
}
ReactDOM.render(
<MyButton title="我是按钮的标题" />,
document.getElementById("example")
);
</script>
</body>
</html>
组件内部状态state
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Title</title>
</head>
<body>
<div id="example"></div>
<script src="https://cdn.jsdelivr.net/npm/react@16.14.0/umd/react.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react-dom@16.14.0/umd/react-dom.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@babel/standalone@7.23.2/babel.min.js"></script>
<script type="text/babel">
class CheckBox extends React.Component {
constructor(props) {
super(props);
this.state = {
isCheck: false,
};
this.click = this.click.bind(this);
}
click() {
this.setState({
isCheck: !this.state.isCheck,
});
}
render() {
return (
<div>
<input type="checkbox" onClick={this.click} />
<span>{this.state.isCheck ? "true" : "false"}</span>
</div>
);
}
}
ReactDOM.render(<CheckBox />, document.getElementById("example"));
</script>
</body>
</html>
实时显示输入内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Title</title>
</head>
<body>
<div id="container"></div>
<script src="https://cdn.jsdelivr.net/npm/react@16.14.0/umd/react.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react-dom@16.14.0/umd/react-dom.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@babel/standalone@7.23.2/babel.min.js"></script>
<script type="text/babel">
class Input extends React.Component {
constructor(props) {
super(props);
this.state = {
content: "",
};
this.change = this.change.bind(this);
}
change(event) {
console.log(event.target.value);
this.setState({
content: event.target.value,
});
}
render() {
return (
<div>
<input type="text" onChange={this.change} />
<p>{this.state.content}</p>
</div>
);
}
}
ReactDOM.render(<Input />, document.getElementById("container"));
</script>
</body>
</html>