15.计算器.html 1.6 KB

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