hooks

hooks介绍

react中的hook是react16.8版本更新以后增加的新特性新语法
可以让函数组件使用state以及生命周期等新特性

hooks组件模板

import React, { useState } from 'react';

const View = (props) =>{
  return<div></div>}
export default View;

常用api:

state让函数组件拥有react得状态
useState()

语法 const 【value,setValue】=useState(初始值)

参数:第一次初始化的值存到内部缓存
返回值:包含俩个元素的数组,第一个是当前内部的state,第二个是更新state值得函数

setValue得俩种写法:

setValue(newValue)参数是非函数值,直接指定新的state,内部永新值覆盖掉旧值
setValue(value=>newValue)参数是函数形式,接受原本的state,返回新的state,内部用新的值覆盖旧值**

useEffect让函数组件拥有了类组件的生命周期
直接使用代表着更新(此处不能写入定时器,否则会造成定时器累加)

  useEffect(()=>{
        console.log("2122")
  })//更新

写入一个空数组是挂载

useEffect(()=>{
     console.log("2122")
  },[])//挂载

传入个回调函数卸载(清除定时器)

useEffect(()=>{
     let timer=setInterval(()=>{
        setCount(count=>count+1)
    },1000)
        console.log("2122")
        return ()=>{
            clearInterval(timer)
        }
    })//卸载传入个回调函数

在数组中写入一个state值是对他进行监听

  useEffect(()=>{
        console.log("2122")
    },[count])//对单个值或者多个值进行监听

完整示例

import React,{useState,useEffect} from "react"
import ReactDom from "react-dom"
const Hooks =(props)=>{
    const [count,setCount]=useState(12)
   function add(){
        setCount(count=>count+1)
    }
    function unmount(){
        ReactDom.unmountComponentAtNode(document.getElementById("root"))
    }
    // useEffect(()=>{
    //     console.log("2122")
    // })//更新
    // useEffect(()=>{
    //     console.log("2122")
    // },[])//挂载
    // useEffect(()=>{
    //     console.log("2122")
    // },[count])//对单个值或者多个值进行监听
    useEffect(()=>{
     let timer=setInterval(()=>{
        setCount(count=>count+1)
    },1000)
        console.log("2122")
        return ()=>{
            clearInterval(timer)
        }
    })//卸载传入个回调函数
  
    return (
        <div>
            <h2>当前求和为:{count}</h2>
            <input type="button"  value="点我" onClick={add}/>
            <input type="button"  value="卸载" onClick={unmount}/>
        </div>
    )
}
export default Hooks

useContext

它取代了context.consumer组件,之前的consumer组件里面必须是一个回调函数写法
其他概念没变,全局的上下文对象依然是由React.createContext方法生成的,上游组件依然使用provider组件提供数据
context优点是可以跨层级通信

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
React Hooks是React 16.8版本引入的一种新特性,它可以让你在函数组件中使用状态(state)和其他React特性,而无需编写类组件。通过Hooks,你可以在无需修改组件结构的情况下,复用状态逻辑,并且使组件更加简洁和易于理解。 Hooks提供了一系列的钩子函数,最常用的是useState()和useEffect()。useState()可以在函数组件中声明和使用状态,并且可以通过函数调用来更新状态。例如,你可以使用useState()来创建一个计数器: ``` import React, { useState } from 'react'; const Counter = () => { const [count, setCount] = useState(0); return ( <div> <p>Count: {count}</p> <button onClick={() => setCount(count + 1)}>Increment</button> </div> ); } ``` 在上面的例子中,useState(0)初始化了一个名为count的状态变量,并将其初始值设置为0。setCount是一个用于更新count的函数。每次点击按钮时,我们通过调用setCount来更新count的值。 另一个常用的钩子函数是useEffect(),它用于处理副作用操作,比如订阅数据、网络请求或者手动修改DOM。useEffect()接受两个参数:一个回调函数和一个依赖数组。回调函数将在组件渲染时执行,并且可以返回一个清理函数。依赖数组用于定义在依赖项改变时是否重新运行回调函数。 这只是React Hooks的简单介绍,还有其他很多有用的Hooks,比如useContext()、useReducer()等。Hooks提供了一种更加灵活和直观的方式来管理组件状态和副作用,使得函数组件的编写更加简单和可维护。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上流星&洒下星辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值