9.生命周期.html 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. <!-- 单根元素 -->
  13. <div id="root"></div>
  14. <script type="text/babel">
  15. const root = ReactDOM.createRoot(document.getElementById("root"));
  16. // 创建 挂载 更新 卸载
  17. // npm install
  18. // npm uninstall
  19. class Good extends React.Component {
  20. constructor(props) {
  21. // props和state都可以改变页面
  22. // props只读 不修改
  23. // state 修改
  24. super(props);
  25. this.state = {
  26. currentTime:new Date(),
  27. aa:'1111'
  28. }
  29. }
  30. // 挂载
  31. componentDidMount() {
  32. console.log("挂载");
  33. // 更新数据 this.setState({})
  34. this.timer = setInterval(()=>{
  35. this.setState({
  36. currentTime: new Date()
  37. })
  38. },1000)
  39. }
  40. // 更新 => 数据改变了
  41. componentDidUpdate() {
  42. console.log("更新")
  43. }
  44. // 销毁
  45. componentDidUnMount() {
  46. console.log("销毁")
  47. clearInterval(this.timer);
  48. }
  49. render() {
  50. return(
  51. <div>
  52. <p>{this.state.aa}</p>
  53. <h1>当前时间:{this.state.currentTime.toLocaleString()}</h1>
  54. </div>
  55. )
  56. }
  57. }
  58. root.render(<Good/>)
  59. </script>
  60. </body>
  61. </html>