react 通过生命周期优化组件性能

2023-11-11

已经对React生命周期有了认识,那如何利用它提高组件的性能那?通过shouldComponentUpdate函数,改善React组件性能的例子。

小姐姐组件存在性能问题

是的,小姐姐组件已经写的很熟悉了,但是它有一个性能问题,那就是子组件XiaojiejieItem频繁无用渲染render。如何能看出这个问题的那?

首先你要确认你安装了React Developer Tools 如果你没有安装,可以到前边的课程学习一下安装。有了这个浏览器插件,就可以在控制台中找到components标签,然后在右边点开设置,选中highlight Updates。
在这里插入图片描述
在这里插入图片描述
这时候你在浏览器的文本框中输入一下内容,你可以清楚的看到子组件也发生了重新render的情况。

有很多程序员会忽略这样的性能损耗,认为没有什么大不了的,但是软件的卡顿是一点点产生的,所以必须要减少性能损耗。

可以在XiaojiejieItem.js的render函数里加入下面的代码,更直观的看到这个问题。

    render() { 
        console.log("渲染一次输出一次") //我们只要输如一点内容他就会 渲染 严重影响性能
        return ( 
            // 点击事件            this.props.content 子接
        <li onClick = {this.handleClick}>
        {this.props.avname}--为你服务 : {this.props.content}
        </li>
         );
    }

利用shouldCompontUpdate解决这个问题,一定要进行组件的优化 很重要很重要

shouldComponentUpdate有两个参数:

  • nextProps:变化后的属性;
  • nextState:变化后的状态;
    // 一定要进行组件的优化 很重要很重要
    shouldComponentUpdate(nextProps,nextState){
        // 将要变化的内容 和 原来的不一样的时候(有变化渲染 没变化不渲染)
        if(nextProps.content!==this.props.content){
            return true //去渲染
        }else{
            return false //结束 不渲染
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

react 通过生命周期优化组件性能 的相关文章

  • React中的“计算属性”

    React中的 计算属性 相信许多学习过vue的小伙伴对计算属性都不陌生吧 计算属性能帮我们数据进行一些计算操作 计算属性是依赖于data里面的数据的 在vue中只要计算属性依赖的data值发生改变 则计算属性就会调用 那React中也有计
  • React + Umi + Dva + Antd 简述 及创建项目过程简述

    React 你的第一个组件 React React是前端三大主流框架之一 你可以在React里传递多种类型的参数 如声明代码 帮助你渲染出UI 也可以是静态的HTML DOM元素 也可以传递动态变量 甚至是可交互的应用组件 安装react框
  • css in js开发利器 - styled-components(样式组件)

    styled components 是一个常见的 css in js 类库 和所有同类型的类库一样 通过 js 赋能解决了原生 css 所不具备的能力 比如变量 循环 函数等 注意 有时候 React 版本和 styled componen
  • React重新渲染的触发机制及其优化策略

    React是一个用于构建用户界面的JavaScript库 它的核心特点之一是使用虚拟DOM Virtual DOM 来实现高效的组件渲染 那组件重新渲染的机制是如何呢 基于这些机制 如果进行优化呢 虚拟DOM是一个用JavaScript对象
  • React Router 路由守卫

    React Router 路由守卫 组件内路由守卫 1 下面是使用高阶组件实现路由守卫的示例代码 import React from react import Route Redirect from react router dom con
  • state和props的区别__react

    首先说明 state和props是每个组件都有的 其次 state可变 但props不可变 这是官网给出的说法 但实操过程中 state的确可变 但props也可以变 是不是fb搞错了 当然不是 这里的可变与不可变 说的是改变后 是否会重新
  • React的State Hook用法详解

    一 State Hook是啥 State Hook 就是指 useState 这个特殊函数 让你不用编写class 就可以使用state特性 换言之就是让 函数组件 拥有 state 特性 对数据进行动态更新 二 class中的state
  • 【React】路由(详解)

    目录 单页应用程序 SPA 路由 前端路由 后端路由 路由的基本使用 使用步骤 常用组件说明 BrowserRouter和HashRouter的区别 路由的执行过程 默认路由 精确匹配 Switch的使用 重定向路由 嵌套路由 向路由组件传
  • 对 React Hook的闭包陷阱的理解,有哪些解决方案?

    hooks中 奇怪 其实符合逻辑 的 闭包陷阱 的场景 同时 在许多 react hooks 的文章里 也能看到 useRef 的身影 那么为什么使用 useRef 又能摆脱 这个 闭包陷阱 搞清楚这些问题 将能较大的提升对 react h
  • vue 全局组件注册_如何注册vue3全局组件

    vue 全局组件注册 With the new versions of Vue3 out now it s useful to start learning how the new updates will change the way w
  • react基础--组件通讯:props基础、子传父、父传子、兄弟组件通讯、context跨级组件、props进阶

    目录 一 props基础 1 1 概述 1 2 函数组件通讯 1 2 1 基本用法 1 2 1 对象数据传递 1 3 类组件通讯 1 4 props的特点 二 组件通讯三种方式 2 1 父传子 2 2 子传父 2 3 兄弟组件通讯 三 co
  • 【Ant Design】Form.Item创建自定义表单

    一 概述 Antd是一个非常强大的UI组件库 里面的Form表单组件也基本能满足我们大多数场景 但是也有需要自定义表单的场景 Vue2里我们使用v model 结合子组件的model属性 来实现自定义组件的双向绑定 Vue3里我们使用v m
  • 组件间样式覆盖问题--CSS Modules

    1 组件间样式覆盖问题 问题 CityList 组件的样式 会影响 Map 组件的样式 原因 在配置路由时 CityList 和 Map 组件都被导入到项目中 那么组件的样式也就被导入到项目中了 如果组件之间样式名称相同 那么一个组件中的样
  • react组件状态同步-状态提升

    假设定义组件TemperatureInputSon import React from react class TemperatureInputSon extends React Component constructor props su
  • Ant Design Pro从零到一(认识AntD)

    废话 在我们第一次接触AntD的时候 会遇到两个东西 一个是Ant Design 另一个是Ant Design Pro 他们的官网分别是 Ant Design 一套企业级 UI 设计语言和 React 组件库 Ant Design Pro
  • React之state、hooks性能分析

    目录 一 state 1 为什么使用setState 2 setState异步更新 3 如何获取异步的结果 4 setState一定是异步吗 5 源码分析 6 数据的合并 7 多个state的合并 二 为什么需要Hook 三 Class组件
  • React 定时刷新接口

    通过 useEffect 在页面加载时调用 getNodeDetailList 列表接口 useEffect gt getNodeDetailList change 然后通过 setInterval 来进行定时刷新 useEffect gt
  • quill编辑器使用

    官方git https github com quilljs quill 官方文档 https quilljs com 中文文档 https kang bing kui gitbook io quill 编辑器是个正经编辑器 就是文档太不正
  • 值得收藏的UmiJS 教程

    点击上方关注 前端技术江湖 一起学习 天天进步 前言 网上的umi教程是真的少 很多人都只写了一点点 很多水文 所以打算自己写一篇 自己搭建umi 并封装了一下常用的功能 并用到公司实际项目中 umi介绍 Umi 是什么 Umi 中文可发音
  • React事件处理及事件流

    React事件处理 React事件处理是通过将事件处理器绑定到组建上处理事件 事件触发的同时更新组建的内部状态 内部状态更新会触发组件的重绘 React 元素的事件处理和 DOM 元素的事件处理很相似 但语法上的略有区别 在React中事件

随机推荐

  • 关于textarea限制字数的总结

    在input标签中 只需要设置maxlength 200 即可 但是在textarea标签中 IE9及IE9以下浏览器是不支持的 IE10 IE11则支持 估计后续的版本应该都会支持 现在来说下怎么让大部分IE版本都支持textarea 标
  • MySQL:JDBC

    什么是JDBC JDBC Java DataBase Connectivity 称为 Java数据库连接 它是一种用于数据库访问的应用程序 API 由一组用Java语言编写的类和接口组成 有了JDBC就可以 用统一的语法对多种关系数据库进行
  • PID算法应用于室内温度控制的C语言实现

    我最近在学习PID算法 对此很感兴趣 所以与大伙分享下 有不足的地方欢迎指出 非常谢谢 PID算法的基本内容本篇博客就不做阐述了 网上有很多资料 文章的主题是用C语言实现PID算法 为了更好的理解 我采用软件模拟室内温度控制的方式与大伙分享
  • logback基本配置说明

    1 简介 logback继承自log4j 它是spring boot默认的日志集成框架 官网地址 https logback qos ch 2 spring boot默认日志框架 当我们启动spring boot项目的时候 没有进行任何日志
  • Python中MNE库的EEG数据(PCA和ICA)预处理

    PCA ICA是脑电数据预处理的一个步骤 一般放在带通滤波处理之后 个人理解PCA和ICA的作用基本一致 用于去除心电和眼电的影响 不过PCA是提取主要成分 相当于降维提取特征 ICA是分离独立成分 目前PCA和白化已经是ICA的标准化的预
  • Javascript输出

    js输出 严格来说 JavaScript 没有任何打印或者输出的函数 以下几种方式都只不过是一种数据展示的方法 第一种 弹出对话框 对话框有三种 Window alert Window confirm Window promt 通常省略Wi
  • 这个拒绝内卷的AI狼火了!高智商却自暴自弃,不想抓羊只想躺

    新智元报道 来源 B站等 编辑 Yaxin 新智元导读 近日 一个狼吃羊的AI火了 在一个狼吃羊的AI智障游戏中 狼发现自己吃不到羊 直接选择了 自杀 然而 狼选择撞石的原因竟是 自杀分数高 智障AI狼最近火了 在一个狼吃羊的AI游戏中 狼
  • 关于oauth2中为什么不直接返回token而是传授权码code

    1 客户端会暴露 token授权服务器是会根据客户端传来的 redirect url 返回给客户端 3xx 重定向状态码 然后客户端再把授权码 code 传给客户端服务器 首先前端 网页有源代码 手机app反编译 的都是不安全的 直接将 t
  • 在html中调用ActiveX控件

    刚做完一个控件 要求嵌入在C S结构的网页中 我 在HTML中嵌入vbscript脚本来调用控件中的方法和属性的 为啦以后做个参考 把它的源码给写下来 也希望能给一些同僚们做一个参考 我的控件接口是 FpGather 在html中的调用 h
  • 如何申请OPenai密钥

    你可以在 OpenAI 的网站上申请密钥 首先 你需要去到 OpenAI 的网站并注册一个账号 然后 登录到你的账号 在账号设置页面申请密钥 你可能需要填写一些信息 并描述你对 OpenAI API 的计划 如果你想使用某些特定的 Open
  • 1.4-从“把大象装进冰箱拢共分几步”来理解面向对象编程思想

    一 定义 面向过程 概念 面向过程是一种以过程为中心的编程思想 它是一种基础的顺序的思维方式 面向对象方法的基础实现中也包含面向过程思想 特性 模块化 流程化 优点 性能比面向对象高 因为类调用时需要实例化 开销比较大 比较消耗资源 比如单
  • QTCreator的使用

    用最新的QtCreator选择GUI的应用会产生含有如下文件的工程 下面就简单分析下各部分的功能 pro文件是供qmake使用的文件 不是本文的重点 不过其实也很简单的 在此不多赘述 所以呢 还是从main开始 view plain cop
  • 汉字转换为拼音的JavaScript库

    将JSPinyin剥离mootools这个JavaScript库 可以独立使用 1 一个是将汉字翻译为拼音 其中每一个字的首字母大写 pinyin getFullChars this value 2 一个是可以将每一个字的拼音的首字母提取出
  • MobaXterm学习与使用

    转载地址 MobaXterm学习与使用 首先要弄清几个概念 1 先来看看SSH是什么 定义如下 SSH是一种可以保证用户远程登录到系统的协议 实际上 SSH是一个网络协议 允许通过网络连接到Linux和Unix服务器 SSH使用公钥加密来认
  • 给定一个字符串求出最长重复子串

    主要是使用到了二分的思想 知道字符串就是知道了它的长度 然后可知len max s length 2 然后暴力枚举就可以得出答案 代码如下 include
  • python爬虫 模拟登录_Python爬虫(8):模拟登录方法汇总

    对于很多要先登录的网站来说 模拟登录往往是爬虫的第一道坎 本文介绍 POST 请求登录 获取 Cookies 登录 Seleium 模拟登录三种方法 摘要 在进行爬虫时 除了常见的不用登录就能爬取的网站 还有一类需要先登录的网站 比如豆瓣
  • 破解Photoshop cs6

    怎样安装和破解Photoshop CS6 浏览 152148 更新 2012 10 18 23 46 标签 photoshop 1 2 3 4 5 6 7 分步阅读
  • union struct的内存分配方式及其sizeof大小

    经验 1 int main union zcl double i char k 15 char c struct date int cat 元类型4 zcl cow 元类型8 zcl里面的i double类型 struct dat char
  • 有各组方差怎么算组间平方和_讲讲统计科学里的方差分析

    上一篇讲了假设检验 这一篇讲讲方差分析 1 背景 假如你们现在针对用户提出了三种提高客单价的策略A B C 现在想看一下这三种策略最后对提高客单价的效果有什么不同 那我们怎么才能知道这三种策略效果有什么不同 最简单的方法就是做一个实验 我们
  • react 通过生命周期优化组件性能

    已经对React生命周期有了认识 那如何利用它提高组件的性能那 通过shouldComponentUpdate函数 改善React组件性能的例子 小姐姐组件存在性能问题 是的 小姐姐组件已经写的很熟悉了 但是它有一个性能问题 那就是子组件X