12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- <!-- 引入文件 *顺序不能改变-->
- <!-- 将jsx转为js -->
- <script src="./babel.min.js"></script>
- <!-- react核心库 -->
- <script src="./react.development.js"></script>
- <!-- react中的dom操作库 -->
- <script src="./react-dom.development.js"></script>
- </head>
- <body>
- <div id="root"></div>
- <script type="text/babel">
- // 类组件 state 可以修改数据
- // 计数器
- class HandleCount extends React.Component {
- // 定义初始数值
- state = {
- title: "计数器",
- count: 0,
- };
- // 数据更新视图未变
- //vue的解决方案:vue.set() 或 this.$set
- // react解决方案:
- handleAdd() {
- this.setState({
- count:this.state.count + 1,
- });
- }
- handleReduce = ()=>{
- console.log(this)
- this.setState({
- count:this.state.count -1,
- });
- }
- render() {
- return (
- <div>
- <h1>{this.state.title}</h1>
- <p>当前数值:{this.state.count}</p>
- <button onClick={this.handleAdd.bind(this)}>+</button>
- <button onClick={this.handleReduce}>-</button>
- </div>
- )
- }
- }
- let element = <HandleCount/>
- ReactDOM.createRoot(document.querySelector("#root")).render(element);
- </script>
- </body>
- </html>
|