React中Hook详解

本文介绍了React 16.8.0引入的Hooks新特性,详细讲解了useState、useEffect和useRef等常用Hook的用法。同时,讨论了React优化策略,包括Frament的使用以及Context在类式组件和函数式组件中的应用。此外,提到了useCallback和useMemo在性能提升方面的作用。
摘要由CSDN通过智能技术生成

React中Hooks是什么?

Hook是React 16.8.0版本新增的新特性/新语法

可以让你在函数组件中使用state以及其它的React特性

import React,{
   use...} from 'react'

常用Hook:
useState :
接受一个参数: 就是初始化state的状态

	声明一个数组: 
		
		第一个: state的状态
		
		第二个: 修改state的方法
export default function Test (){
   
    const [count, setCount] = useState(0)
    return <div>
        {
   count}
        <button onClick={
   ()=>setCount(count+1)}>操作state</button>
    </div>
}

useEffect

useEffect Hook:
		默认第一个参数:接受一个函数,类似于生命周期,componentDidMount 和 componentDidUpdate

			useEffect(()=>{ console.log("这是Hook") })

		默认第二个参数:如果默认接受一个数组[],如果数组为空 效果 == componentDidMount
		 数据更新就不触发上面方法

		数组里可以接受你要数据更新监听的参数,如果更新状态就触发第一个参数的方法

			useEffect(()=>{ console.log("这是Hook") },[  ])
		
		在第一个参数方法的返回值 == componentWillunmount()
useEffect(()=>{
    console.log("这是Hook") }return /* 做一些收尾工作 */), [ count ]}
export default function Test (){
   
    const [count, setCount] = useState(0)

    useEffect(()=>{
   
        console.log("这是Hook")
        return /* 做一些收尾工作 */
    },[count])
    return <div>
        {
   count}
        <button onClick={
   ()=>setCount(count+1)}>操作state</button>
    </div>
}

useRef

useRef:类似于createRef 

const testRef = useRef
Reacthook是指React团队在16.8版本引入的新特性,它可以让你在不编写class的情况下使用state以及其他的React特性。Hook提供了更直接的API,如props、state、context、refs以及生命周期,它的目的是解决在class组件存在的各种问题,实现更高效的编写React组件。使用hook的步骤包括使用State Hook来管理状态,还有一些注意事项,如在使用useState和其他钩子时,要确保在React函数的最顶层调用它们,不要在循环、条件或嵌套函数使用hook。这样可以确保在多次的useState和useEffect调用之间保持hook状态的正确性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【React-Hook详解](https://blog.csdn.net/GengFuGuo/article/details/124840750)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [react Hook 用法及介绍](https://blog.csdn.net/SongdanDab/article/details/128650378)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [react hook 详解及使用](https://blog.csdn.net/xuewenjie0217/article/details/119112122)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值