React Hook---useEffect

import React, { createContext, useEffect, useState } from 'react'

export default function index() {
  const [name, setname] = useState<number>(1)

  useEffect(() => {
    //相当于componentDidMount:完成第一次挂载渲染,和componentDidUpdata:数据发生改变
    console.log('状态改变或挂载'+name)
    //return相当于componentWillUnMount:组件卸载
    return () => {
      console.log('卸载'+name)
    }
  }, [name])//[]可有可无,没有组件状态一改变就执行函数体,【】时不监听所有state,【name】:只监听name state
  /*
    什么都不传,组件每次 render 之后 useEffect 都会调用,相当于 componentDidMount 和 componentDidUpdate。
    传入一个空数组 [], 只会调用一次,相当于 componentDidMount 和 componentWillUnmount。
    传入一个数组,其中包括变量,只有这些变量变动时,useEffect 才会执行。
  */

  return (
    <div>
      <button onClick={()=>{
        setname(name+1)
      }}>+1</button>
      {name}
    </div>
  )
}

  react详细生命周期请看:https://www.cnblogs.com/fei-yu9999/p/15087153.html

 

posted @ 2021-08-01 17:39  飞渝  阅读(55)  评论(0)    收藏  举报