美文网首页
hook-模拟生命周期函数

hook-模拟生命周期函数

作者: skoll | 来源:发表于2020-06-24 11:49 被阅读0次

1 .组件生命周期操作依赖于useEffect hook

模拟componentDidMount

1 .如果需要在挂载时更新请求一些资源,并且需要在卸载时释放这些资源,还是推荐使用useEffect,放在一起,方便维护

export default function useOnMount(fn: Function) {
  useEffect(() => {
    fn()
  }, []) // 第二个参数设置为[], 表示不必对任何数据, 所以只在首次渲染时调用
}

模拟componentWillUnmount

export default function useOnUnmount(fn: Function) {
  useEffect(() => {
    return () => {
        fn()
    }
  }, [])
}

模拟componentDidUpdate

1 .这个感觉也没啥必要,不就是useEffect的传入依赖函数吗?这个只是把那些都提了出来,换了一个角度来实现需求
import {useEffect,useRef} from 'react'
export default function useOnUpdate(fn,dep){
    const ref=useRef({fn,mounted:false})
    ref.current.fn=fn

    useEffect(()=>{
        if(!ref.current.mounted){
            ref.current.mounted=true
            // 首次渲染不执行
        }else{
            ref.current.fn()
        }
    },dep)
}

2 .使用
useOnUpdate(()=>{
        console.log('num发生了变化')
        handleRemove()
    },[num])

相关文章

  • hook-模拟生命周期函数

    1 .组件生命周期操作依赖于useEffect hook 模拟componentDidMount 1 .如果需要在...

  • React生命周期函数

    生命周期函数 生命周期函数性能优化 生命周期函数发送Ajax请求

  • Vue学习笔记(12)-生命周期函数

    生命周期函数 生命周期函数代表的是Vue实例,或者是Vue组件,在网页中各个生命阶段所执行的函数。生命周期函数可以...

  • React的生命周期函数

    一、生命周期函数的定义 在某个时刻自动被调用的函数是生命周期函数 二、React中生命周期函数示意图 三、生命周期...

  • Vue的生命周期函数

    创建期间的生命周期函数: beforeCreate() 在beforeCreate() 生命周期函数执行的时候,...

  • RN-生命周期函数(新)

    旧版生命周期函数 react 16.4 以后生命周期函数 http://projects.wojtekmaj.pl...

  • 课程2

    如何在模拟器里面调试功能: 谷歌调试面板说明 反回两个平级标签 state 生命周期函数 布局的区别

  • Vue 生命周期

    生命周期函数 生命周期函数就是 Vue 实例在某一个时间点会自动执行的函数 简单来说就是,钩子(生命周期函数)就好...

  • Vue3.X学习笔记

    引用 创建应用app和挂载 或者 生命周期函数 生命周期函数,生命周期函数你可以这样理解,就是在** 在某一时刻会...

  • uni-app的基本语法和规范

    生命周期函数

网友评论

      本文标题:hook-模拟生命周期函数

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