react——memoize-one性能优化方案—— memoization(计算属性/记忆组件)

Posted 勇敢*牛牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react——memoize-one性能优化方案—— memoization(计算属性/记忆组件)相关的知识,希望对你有一定的参考价值。

import memizeOne from 'memoize-one'
  • 用于计算所用,在类组件中,需要安装,在函数组件中它内置
  • 此方法是一个性能优化的方案,可以不用,但是如果有计算且多次调用,则建议使用

memoization(计算属性/记忆组件)

连续两次相同传参,第二次会直接返回上次的结果,每次传参不一样,就直接调用函数返回新的结果,会丢失之前的记录,并不是完全记忆,可以在它的参数中传入state数据从而实现了类似Vue中的计算属性功能

# 安装
npm i -S memoize-one

# 引入
import memoizeOne from 'memoize-one'

# 使用
getValue = memoizeOne((x,y) => x+y)

# 调用
render()
let total = this.getValue(this.state.x, this.state.y)
return <div>total</div>


例如:

n1和n2参数就是它的依赖项,只要它的依赖项没有变化,则第2次后调用都为缓存中读取

import React,  Component  from 'react';
import memizeOne from 'memoize-one'
class Computer extends Component 
    state=
        n1: 1,
        n2: 2
    
    sum = memizeOne((n1,n2)=>n1+n2)
    sum = memizeOne((n1,n2)=>
        return n1+n2
    )

    render() 
        let  n1, n2  = this.state
        return (
            <div>
                <h3>this.sum(n1, n2)</h3>
                <h3>this.sum(n1, n2)</h3>
            </div>
        );
    


export default Computer;

以上是关于react——memoize-one性能优化方案—— memoization(计算属性/记忆组件)的主要内容,如果未能解决你的问题,请参考以下文章

react-性能优化

校招or跳槽,你需要掌握的21个React性能优化技巧

React memoization技术:将函数计算结果缓存起来

记录React性能优化之“虚拟滚动”技术——react-window

React性能优化之PureComponent 和 memo使用分析

关于React性能优化