13.计数器.html 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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 <Count num={2} />
  17. }
  18. class Count extends React.Component {
  19. constructor(props) {
  20. super(props);
  21. console.log(props,'ssss')
  22. this.state = {
  23. count: 0
  24. }
  25. this.getAdd = this.getAdd.bind(this);
  26. }
  27. getAdd() {
  28. // this.setState((prevState,props)=>{}) prevState,props传入的参数 处理后需要返回值
  29. this.setState((prevState,props) => {
  30. console.log(props);
  31. return {count: prevState.count + props.num}
  32. })
  33. // this.setState({
  34. // count: this.state.count + 1
  35. // })
  36. }
  37. render() {
  38. const { count } = this.state;
  39. return (
  40. <div>
  41. <h3>
  42. 总数是:{count}
  43. </h3>
  44. <button onClick={this.getAdd}>+</button>
  45. <button>-</button>
  46. </div>
  47. )
  48. }
  49. }
  50. root.render(<App/>)
  51. </script>
  52. </body>
  53. </html>