12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- <script src="../babel.min.js"></script>
- <script src="../react.development.js"></script>
- <script src="../react-dom.development.js"></script>
- </head>
- <body>
- <div id="root"></div>
- <script type="text/babel">
- // 类组件 state 可以修改
- // 计数器
- class MyCom extends React.Component {
- // 定义初始数值
- state = {
- count : 0,
- title : "计数器"
- }
- // 旧版本的定义方法
- // constructor(){
- // super(props)
- // state = {
- // }
- // }
-
- // 数据更新视图未改变
- // vue的解决方法 使用 Vue.set 或者 this.$set
- // react的解决方法 使用 this.setState({})
- // 类组件中 方法无需使用function关键字直接写即可
- handlerAdd(){
- // console.log(this)
- this.setState({
- count: this.state.count + 1
- })
- }
- handlerReduce=()=>{
- // console.log(this)
- this.setState({
- count: this.state.count - 1
- })
- }
- render(){
- return (
- <div>
- <p>{this.state.title}</p>
- <p>当前数值:{this.state.count}</p>
- <button onClick={this.handlerAdd.bind(this)}>+</button>
- <button onClick={this.handlerReduce}>-</button>
- </div>
- )
- }
- }
- let element = <MyCom/>
- ReactDOM.createRoot(document.getElementById('root')).render(element)
- </script>
- </body>
- </html>
|