Memo Hook

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

Memo Hook

用于保持一些比较稳定的数据,通常用于性能优化

useMemo和useCallback使用场景类似,但是useMemo相较于useCallback用法更加强大

import React, { useMemo, useState } from 'react'

const Item = (props) => {
  console.log('Item Render')
  return <li>{ props.value }</li>
}


// useMemo和useCallback功能类似
// 区别:useCallback是对函数进行缓存,useMemo可以对任何类型进行缓存
// useMemo()的第一个参数是一个函数,函数返回值为要缓存的对象,第二个参数是缓存依赖项,
// 只要依赖项没有发生改变,缓存就不会发生改变。在进行多个DOM渲染时,往往可以极大的提高性能。
const App = () => {

  const [range, setRange] = useState({ min: 1, max: 1000 })
  const [inputValue, setInputValue] = useState(0)

  const list = useMemo(() => {
    const list = []
    for (let i = range.min; i <= range.max; i++) {
      list.push(<Item key={ i } value={ i } />)
    }
    return list
  }, [range.min, range.max])

  return (
    <div>
      <ul>
        { list }
      </ul>
      {/* input框内容发生改变 逻辑上不应该影响list 所以对list进行缓存 list是否重新渲染
          只和range的取值范围相关
      */}
      <input type="number" value={ inputValue } onChange={ e => setInputValue(+e.target.value) } />
    </div>
  )
}

export default App

相关文章

  • Memo Hook

    Memo Hook 用于保持一些比较稳定的数据,通常用于性能优化 useMemo和useCallback使用场景类...

  • React v16 Fiber

    React在v16推出了很多让我很惊喜的新特性:memo,lazy,Suspense,Hook等当然,其中最让我惊...

  • 如何使用React.memo()

    目录 包装函数 PureComponent React.memo() React.memo() 与Redux 其他...

  • React.memo()

    React 16.6.0 正式发布 React.memo() React.memo() 是什么? React.me...

  • 337. House Robber III

    需要memo

  • Hooks进阶

    React.memo、useMemo、useCallback 的区别 React.memo 是对传入的 props...

  • 堆利用的手法:

    malloc_hook realloc_hook+free_hook free_hook unsorted_bin...

  • Memo

    To:All staff From:Joe Date:14 July 2010 Subject:Extension...

  • Memo

    卑微的生存在这孤独的城市,幸好有你,世间冷暖,有些人会关心你,有些人会算计你,你也许计较,也许不当回事,这只是老天...

  • memo

    To: Mr.Smith From:Department of Human Resoutces Date: Dec...

网友评论

      本文标题:Memo Hook

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