简单介绍部分react Hooks

1.useState
const [count, setCount] = useState(0)

局部状态管理的hook,异步

2.useEffect
useEffect(() => {
   }, [])

用于监听的hook,在函数组件中执行数据获取,操作dom等,类似于类组件的三个生命周期钩子函数(componentDidMount、componentDidUpdate、componentWillUnMount)

第一个参数是函数,在该函数中执行所需的操作;第二个的参数是依赖项,可以为空,空数组,或者字符串数组

依赖项-空数组:在组件挂载后只运行一次 => componentDidMount

依赖项-空/字符数组,依赖项改变时,在挂载/更新都会重新运行 => componentDidUpdate

useEffect(() =>{
   
	const timer = setInterVal(() => {
   }, 1000)
	return () => {
    clearInterVal(timer)} 
}, [xxx])

可以在return的函数中清除定时器,取消订阅等操作 => componentWillUnMount

3.useMemo
const count = useMemo(() => {
   return xxx; }, [xxx])

优化计算过程,当依赖项发生改变时才会重新计算,会返回一个值

4.useRef
const domRef = useRef(); domRef.current.xxx();

创建可变的ref对象,用于访问dom对象,组件实例或在函数式组件中保存可变的数据

5.高阶组件:React.memo()

用于优化组件的渲染性能,当接收的props没有变化时,该组件不会重新渲染

6.useContext

类组件:const myContext = React.createContext()

函数组件: const myContext = useContext(MyContext) // MyContext要获取数据的组件

实现跨组件传递数据,优于使用props层层传递。包含两部分:Provider、Consumer

提供数据

Provider

<MyContext.Provider value={xxx}>

<ChildComponent></ ChildComponent>

</MyContext.Provider>

访问共享数据

1.Consumer

<MyContext.Consumer>

{data => <div>{data}</div>}

</MyContext.Consumer>

2.const myContext = useContext(MyContext)

<ChildComponent>

const data = useContext(MyContext)

return <div>{data}</div>

</ChildComponent>

7.unstable_batchedUpdates

当存在异步操作时,多次的set会导致多次的渲染,因此我们可以使用该方法,合并set操作,减少渲染次数;可以直接调用react-redux中的batch(底层也是调用的unstable_batchedUpdates)

import React, {
   useState} from "react";
import ReactDOM from "react-dom";
import "./styles.css"
  • 22
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值