10.setState.html 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. <script src="./babel.min.js"></script>
  8. <script src="./react.development.js"></script>
  9. <script src="./react-dom.development.js"></script>
  10. </head>
  11. <body>
  12. <div id="root"></div>
  13. <script type="text/babel">
  14. // setState 更新组件状态state 触发组件重新渲染的核心方法
  15. let root = ReactDOM.createRoot(document.getElementById("root"));
  16. class Count extends React.Component {
  17. constructor(props) {
  18. super(props)
  19. this.state = {
  20. count: 0
  21. }
  22. }
  23. handleClick = () => {
  24. // this.setState({
  25. // count: 2
  26. // })
  27. this.setState((state,props) => ({
  28. count: state.count + 1
  29. }))
  30. }
  31. render() {
  32. return (
  33. <div>
  34. <h1 onClick={this.handleClick}>{this.state.count}</h1>
  35. </div>
  36. )
  37. }
  38. }
  39. // function Count() {
  40. // return (
  41. // <div><h1></h1></div>
  42. // )
  43. // }
  44. root.render(<Count />);
  45. </script>
  46. </body>
  47. </html>