美文网首页
Layout Hook

Layout Hook

作者: percykuang | 来源:发表于2020-05-24 10:27 被阅读0次

LayoutEffect Hook

浏览器的页面大致渲染过程:

对DOM进行了改动(同步代码) => 浏览器下一次渲染时间点到达 => 对比差异,进行渲染(异步)=> 用户看到新的效果

useEffect: 浏览器渲染完成后,用户看到新的效果后

useLayoutEffect:完成了DOM改动,但还没有呈现给用户。和useEffect的用法没有任何区别,

唯一的区别就是运行的时间点不同。

应该尽量使用useEffect,因为它不会导致渲染阻塞,如果出现了问题,再考虑useLayoutEffect

useLayoutEffect.png
import React, { useEffect, useLayoutEffect, useRef, useState } from 'react'

const App = () => {

  const [count, setCount] = useState(0)
  const h1Ref = useRef()

  // 使用useEffect时 在内部用ref操作元素DOM时 有可能导致页面一进来会先闪现 0 再 变为 random值
  // useEffect(() => {
  //   h1Ref.current.innerText = Math.random().toFixed(2)
  // })
  useLayoutEffect(() => {
    h1Ref.current.innerText = Math.random().toFixed(2)
  })

  return (
    <div>
      <h1 ref={h1Ref}>{count}</h1>
      <button onClick={() => setCount(count + 1)}>+</button>
    </div>
  )
}

export default App

相关文章

  • Layout Hook

    LayoutEffect Hook 浏览器的页面大致渲染过程: 对DOM进行了改动(同步代码) => 浏览器下一次...

  • Android Hook框架总结

    layout: posttitle: Android Hook框架总结categories: Androiddes...

  • 堆利用的手法:

    malloc_hook realloc_hook+free_hook free_hook unsorted_bin...

  • hook原理小结

    常用的hook方式主要有导入表hook、导出表hook和inline hook三种。 一,导入表hook 首先需要...

  • 常用油猴Hook插件

    hook cookie hook 过debugger

  • react hook 状态与操作封装

    统一hook 数组hook

  • 遍历hook Dex中的类

    创建DexFile 遍历拿出所有类名 找到类对象,进行hook hook构造函数 hook方法 打印hook方法中的日志

  • frida native hook

    本篇介绍 frida 也支持hook native,本篇看下如何hook native hook native函数...

  • HOOK

    HOOK 一、HOOK概述 HOOK(钩子) 其实就是改变程序执行流程的一种技术的统称! 二、iOS中HOOK技术...

  • Windows Hook

    Hook 关于Hook 1.1什么是Hook 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可...

网友评论

      本文标题:Layout Hook

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