hook组件初步认识,使用

# hook

是react自16.8版本后新出的一套api,其目的是为了让函数组件拥有全部的react特性.

## 设计思想

函数式编程

## useState

状态管理:

语法:`const[value,setValue] = useState(default)`

定义:让函数组件拥有和类组件一样的状态

- 数组里的第一个值是渲染到页面上的数据state,后面的值是用来修改前面数据的方法,等价于内组件的setState

- 不能直接修改value 只能用setvalue函数去修改,这样才能让组件进行更新

- - [注意]useState返回的修改函数和类组件setState执行逻辑不一样

- setState是把新旧值合并,useState返回的修改函数是传进来的新值直接把旧值替换

  

## useEffect 生命周期

定义:把componentDidMount,

            componentDidUpdate,

            componentWullUnmount,

            shouldComponentUpdate合并成一个叫做useEffect函数

 

### componentDidMount(页面挂载完成)

```js

useEffect(function(){

    console.log('页面挂载完成')

},[])

```

### componentWillUnmount(卸载)

```js    

useEffect(()=>{

        retutn function(){

            //当组件被销毁的时候调用的,在这个函数里做准备卸载的一些事情

            //例如:清除定时器...

        }

    })

```

### componentDidUpdate

```js

useEffect(function(){

    console.log("当props或state发生改变时,这个函数就相当于更新的钩子函数")

})

```

### shouldComponentUpdate

```js

useEffect(()=>{

    console.log("只有'数据'发生改变我才执行")

},['数据'])

```

 

使用:

//导入hook组件

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

const App = () => {

    const [data, setData] = useState(1)

    useEffect(()=>{

        console.log('挂载完成')

    },[])

    useEffect(()=>{

        return ()=>{

            console.log('卸载完成')

        }



    })

    useEffect(()=>{

        console.log('更新')

    })

    useEffect(()=>{

        console.log('固定数据发生改变时触发')

    },[data])

    // 写函数时要声明 这和class组件不一样

    const add=()=>{

        setData(data+1)

    }

    return (

        <div>

            {  data }

            <button onClick={add}>++</button>

        </div>

    )

}

export default App

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值