8.组件状态.html 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>Document</title>
  8. <script src="../../babel.min.js"></script>
  9. <script src="../../react.development.js"></script>
  10. <script src="../../react-dom.development.js"></script>
  11. </head>
  12. <body>
  13. <div id="root"></div>
  14. <script type="text/babel">
  15. const root = ReactDOM.createRoot(document.querySelector('#root'));
  16. class Counter extends React.Component {
  17. // 给类组件添加状态
  18. constructor(props) {
  19. // 通过this访问当前创建的实例,但是 一定要 在调用super函数后才可使用this
  20. super(props);
  21. this.state = {
  22. c: 0,
  23. }; // 组件的自身状态 (类比 Vue组件的data属性)
  24. } // 构造器函数 用于给实例初始化的
  25. render() {
  26. // 获取 状态 通过 this组件实例的state属性
  27. return (
  28. <div>
  29. <p>当前计数:{this.state.c}</p>
  30. <p>
  31. <button>-</button>
  32. <button>+</button>
  33. </p>
  34. </div>
  35. );
  36. }
  37. }
  38. root.render(<Counter />);
  39. </script>
  40. </body>
  41. </html>