10
0

14.计数器.html 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. <!-- jsx 语法浏览器不识别 jsx => js 浏览器可识别的语言 -->
  8. <script src="./babel.min.js"></script>
  9. <!-- react的核心库 -->
  10. <script src="./react.development.js"></script>
  11. <!-- 解析react中的dom库 -->
  12. <script src="./react-dom.development.js"></script>
  13. </head>
  14. <body>
  15. <div id="root">
  16. </div>
  17. <script type="text/babel">
  18. let root = ReactDOM.createRoot(document.getElementById("root"));
  19. function App() {
  20. return <Count num={5} />
  21. }
  22. class Count extends React.Component {
  23. constructor() {
  24. super();
  25. this.state = {
  26. count:0
  27. }
  28. }
  29. addCount() {
  30. // this.setState({
  31. // count: this.state.count + 1
  32. // })
  33. this.setState((prevState,props) => {
  34. return {
  35. count: prevState.count + props.num
  36. }
  37. })
  38. }
  39. render() {
  40. const {count} = this.state;
  41. return (
  42. <div>
  43. <h1>数量:{count}</h1>
  44. <button onClick={this.addCount.bind(this)}>+</button>
  45. <br/>
  46. <button>-</button>
  47. </div>
  48. )
  49. }
  50. }
  51. root.render(<App/>)
  52. </script>
  53. </body>
  54. </html>