15.计数器.html 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. let root = ReactDOM.createRoot(document.getElementById("root"));
  15. function App() {
  16. return (
  17. <Count count={5} />
  18. )
  19. }
  20. class Count extends React.Component {
  21. constructor() {
  22. super();
  23. this.state = {
  24. num: 50
  25. }
  26. }
  27. handleAdd = () => {
  28. this.setState((prevState, props) => {
  29. console.log(prevState, props)
  30. // num:10
  31. return { num: prevState.num + props.count }
  32. })
  33. }
  34. render() {
  35. let { num } = this.state;
  36. return (
  37. <div>
  38. <h1>{num}</h1>
  39. <button onClick={this.handleAdd}>+</button>
  40. <br />
  41. <button>-</button>
  42. </div>
  43. )
  44. }
  45. }
  46. root.render(<App />);
  47. </script>
  48. </body>
  49. </html>