首页 > 其他分享 >react useComparedState

react useComparedState

时间:2023-03-30 22:11:07浏览次数:39  
标签:const useComparedState nextState react state shallowEqual initialState

import {useCallback, useRef, useState} from 'react';
import {shallowEqual} from "../utils/shallowEqual";


function useComparedState(initialState: any) {
    const [state, setState] = useState(initialState);
    const stateRef = useRef(initialState);

    // 更新state:只有当nextState与当前state产生变化时才会触发渲染,优化性能
    const updateState = useCallback((nextState: any) => {
        if (shallowEqual(stateRef.current, nextState)) {
            return;
        }
        setState(nextState);
    }, []);

    return [state, updateState];
}


export {
    useComparedState
}

  

标签:const,useComparedState,nextState,react,state,shallowEqual,initialState
From: https://www.cnblogs.com/lhp2012/p/17274532.html

相关文章

  • React Router 备忘清单_开发速查表分享
    ReactRouter备忘清单IT宝库整理的ReactRouter开发速查清单适合初学者的综合ReactRouter6.x备忘清单入门,为开发人员分享快速参考备忘单。开发速查表大纲入门安装使用添加路由器根路由处理未找到错误contacts用户界面嵌套路由客户端路由创建联......
  • React 编程思想 #1
    React编程思想#1看太多语法,都不如简单尝试一下,跟着官方文档做了一下DEMO,文档写的真不错,就是没翻译完,一大半都还是英文(×_×),本篇其实大部分也是在重复文档内容,不过加上了自己的尝试。从原型开始React可以改变你对所看到的设计以及所构建的应用程序的看法。以前你看到的是......
  • 选择Kendo React PDF查看器的几个理由,一定要看!
    KendoUI致力于新的开发,来满足不断变化的需求,通过React框架的KendoUIJavaScript封装来支持ReactJavascript框架。KendoUIforReact能够为客户提供更好的用户体验,并且......
  • React状态 和 JavaScript箭头函数
    React状态和JavaScript箭头函数在看React的状态时见到了JS的箭头函数,一时间没看明白。React状态React把组件看成是一个状态机(StateMachines)。通过与用户的交互......
  • Vue2使用setup、ref、reactive等Vue3的组合式api
    有些同学想在当前项目中体验Vue3组合式api,setup、ref、reactive等,而且一步就可以升级到Vue3,但是vue确实2.x版本,不改变当前版本怎么办呢?vue2.7.0开始自带composition-api可......
  • 思考 React Hook 和 Vue 组合式 API
    Vue组合式API优化周期函数Vue2比如mounted周期中有很多获取数据的逻辑都在这里,在updated周期中又有很多更新的逻辑在这里。在老版本的Vue3文档中讲解组合式AP......
  • webpack构建React、TSX项目(一)
    此篇主要是记录下webpack构建react项目的过程。前言:为什么想起来通过webpack去构建react的项目呢?现在可以通过cra或者vite或其他脚手架去构建比较省事。主要还是想要了解下w......
  • react生命周期
    componentWillMount:16版本就废弃了,相当于Vue中created;componentDidMount:会在组件挂载后(插入DOM中)立即调用;相当于Vue中的onMounted;componentDidUpdate(prevProps,pr......
  • 万字血书React—走近React
    配置开发环境脚手架工具create-react-app储备知识:终端或命令行、代码编辑器React官方中文文档create-react-app其是基于Node的快速搭建React项目的脚手架工具。npxc......
  • 这是一个使用.net 6 基于wpf 、OpencvSharp(opencv的.net wrapper)、ReactiveUI等开发
    这是一个使用.net6基于wpf、OpencvSharp(opencv的.netwrapper)、ReactiveUI等开发的自用工具,主要用来做ReactiveUI与OpencvSharp学习过程中的尝试以及opencv算子参数的......