1. 事件绑定
const root = ReactDOM.createRoot(document.querySelector("#root"))
class App extends React.Component {
constructor() {
super()
this.state = {
msg: ''
}
}
btn1Click(event) {
console.log("点击了", event);
}
btn2Click = (event) => {
console.log("点击了", this, event);
}
btn3Click(event, name, age) {
console.log("点击了", event, name, age);
}
render() {
return (
<div>
<button onClick={this.btn1Click.bind(this)}>方式一</button>
<button onClick={this.btn2Click}>方式二</button>
<button onClick={(e) => {
this.btn3Click(e, 'luffy', '20')
}}>方式三</button>
</div>
)
}
}
root.render(<App />)
2. Tab切换点击高亮
const root = ReactDOM.createRoot(document.querySelector("#root"));
class App extends React.Component {
constructor() {
super();
this.state = {
tabs: ["动漫", "数码", "钓鱼", "影视"],
currentIndex: 0,
};
}
tabClick(index) {
this.setState({
currentIndex: index,
});
}
render() {
return (
<ul>
{this.state.tabs.map((item, index) => {
return (
<li
className={this.state.currentIndex === index ? "active" : ""}
onClick={() => {
this.tabClick(index);
}}
>
{item}
</li>
);
})}
</ul>
)
}
}
root.render(<App />)
3. JSX语法本质