美文网首页
reactHooks的使用

reactHooks的使用

作者: 凉生可可 | 来源:发表于2019-11-21 17:02 被阅读0次

    useState的使用

    在reactHooks中useState代替了原本的state,
    const [age,setAge]=useState(18)
    定义 age的初始值为18
    通过setAge修改age的值

    import React ,{ useState} from 'react'
    function example(){
      const [age,setAge]=useState(18)
      return(
            <div>
                <p>我叫aaa,性别{sex}</p>
                <Button onClick={()=>setAge(age+1)}>年龄加</Button>
            </div>
        )
    }
    export default example
    

    useEffect的使用

    在reactHoooks中如果需要使用生命周期,则要用到useEffect,

    import React ,{ useState,useEffect} from 'react'
    function example(){
         const [age,setAge]=useState(18)
         useEffect(()=>{
            console.log(1111111)
        })
         return(
            <div>
                <p>我叫aaa,性别{sex}</p>
                <Button onClick={()=>setAge(age+1)}>年龄加</Button>
            </div>
        )
    }
    export default example
    

    这里的useEffect相当于componentDidMountcomponentDidUpdatecomponentWillUnmount 的组合体。

        useEffect(()=>{
            console.log(1111111)//组件挂载时触发
            return ()=>{
                console.log('aaaaaaaaaaa')//组件销毁时触发
            }
        },[])
    

    useEffect 可以传第二个参数,一个数组(effect 更新依赖)如 [age], 数组中任意元素的改变会触发组件更新, 如果传一个空数组, 则组件更新不会运行 hooks 函数, 仅仅在 mount 和 unmount 执行相应 hook。

    createContext和useContext数组间传参

    import React ,{ createContext,useContext} from 'react'
    const countContext= createContext();
    function Counter(){
        let count = useContext(countContext)
        return(<div>
            <h2>{count}</h2> //count的值显示为0
            </div>)
    }
    function Component1 (){
        const [cont,setCont]= useState(0)
        return (
                <countContext.Provider value={cont}>
                    <Counter/>
                </countContext.Provider>
        )
    }
    export default Component1
    

    当组件上层最近的 <CountContext.Provider> 更新时,该 Hook 会触发重渲染,并使用最新传递给 CountContext providercontext value 值。

    useReducer

    function Counter(){
        const [num,dispatch]= useReducer((state,action)=>{
            switch(action){
                case 'sub':
                    return state - 1
                case 'add':
                    return state + 1
                default:
                    return state
            }
        },0)
        return(<div>
            <p>现在的分数是{num}</p>
            <Button onClick={()=>{dispatch('add')}}>加</Button><Button onClick={()=>{dispatch('sub')}}>减</Button>
            </div>)
    }
    

    相关文章

      网友评论

          本文标题:reactHooks的使用

          本文链接:https://www.haomeiwen.com/subject/vuizictx.html