个人网站有哪些板块创世网站建设

diannao/2025/10/21 19:06:15/文章来源:
个人网站有哪些板块,创世网站建设,做策划网站推广怎么写简历,电商运营方案文章目录 父子组件的渲染机制优化手段与实践写法父组件#xff1a;下发stateprops.children 传递无状态组件props传递组件 React.memo缓存子组件与useCallback结合 父子组件的渲染机制 渲染分初次渲染和重新渲染 React组件会在两种情况下发生重新渲染 当组件自身的state发生… 文章目录 父子组件的渲染机制优化手段与实践写法父组件下发stateprops.children 传递无状态组件props传递组件 React.memo缓存子组件与useCallback结合 父子组件的渲染机制 渲染分初次渲染和重新渲染 React组件会在两种情况下发生重新渲染 当组件自身的state发生变化当组件的父组件重新渲染 当一个父组件被触发渲染时其所有子组件都会重新渲染(子组件的子组件也会)。 但有些场景下我们并不希望所有的子组件都重新渲染比如在一个列表中我们只希望重新渲染单击受新选择影响的这项。 优化手段与实践写法 文章1:https://juejin.cn/post/7251861916146417723 父组件下发state 在一个组件中一部分组件使用了 state ,而另一部分组件和 state 相对孤立此时可以将使用的了state的组件拆分为子组件。 优化前 // 优化前写法 const Component () {const [isOpen, setOpen] useState(false)return (divbutton onClick{() setOpen(!isOpen)}open/button{ isOpen ModalDialog /}{/* 状态的变化会引起 SlowComponent 重复渲染 */}SlowComponent //div) }优化后 优化思路将使用了state的组件拆分为一个子组件state在子组件中使用(将state下发到子组件)state变化时仅当前组件重渲染。 // 优化后写法 const Component () {return (divButtonWithDialog /SlowComponent //div) } const ButtonWithDialog () {const [isOpen, setOpen] useState(false)return (button onClick{() setOpen(!isOpen)}open/button{ isOpen ModalDialog /}/) } props.children 传递无状态组件 这两个方法其实思路都是一样的就是拆分受state影响的组件与不受state影响的组件。 有时无法轻易的把一个组件单独的独立提取出来此时可以把带状态的组件提取出来然后把耗时的组件作为 props .children 传递。 优化前 const FullComponent () {const [state, setState] useState(1);const onClick () {setState(state 1);};return (div onClick{onClick} classNameclick-blockpClick this component - slow component will re-render/ppRe-render count: {state}/pVerySlowComponent //div); };优化后 优化思路父组件传递props对于引用类型来说其实传递是地址也就是在子组件中使用props引用类型其实是使用的地址值。执行父组件的render的时候比较发现props.children的引用地址没变化。 本方法与组件形式引用的区别组件重新渲染其实是执行render方法 如果子组件采用组件形式引入(可以理解为这里引入的是子组件render方法的执行结果。 每次父组件重新渲染都会执行子组件的render方法获取新的执行结果。 const SplitComponent () {return (ComponentWithClickpClick the block - slow component will NOT re-render/pVerySlowComponent ///ComponentWithClick/); }; const ComponentWithClick ({ children }) {const [state, setState] useState(1);const onClick () {setState(state 1);};return (div onClick{onClick} classNameclick-blockpRe-render count: {state}/p{children}/div); };props传递组件 该方法与props.children本质是一样的只不过有些时候如果无法通过props.children传递可以将组件作为props的参数传递。 优化前 const FullComponent () {const [state, setState] useState(1);const onClick () {setState(state 1);};return (div onClick{onClick} classNameclick-blockpClick this component - slow component will re-render/ppRe-render count: {state}/pVerySlowComponent /pSomething/pAnotherSlowComponent //div); };优化后 优化思路props 不受状态变化的影响所以可以避免耗时组件的重复渲染。适用于耗时组件不受状态变化的影响又不能作为 children 属性传递 const ComponentWithClick ({ left, right }) {const [state, setState] useState(1);const onClick () {setState(state 1);};return (div onClick{onClick} classNameclick-blockpRe-render count: {state}/p{left}pSomething/p{right}/div); };// 把组件作为 props 传递给组件这样耗时组件就不受点击事件的影响 const SplitComponent () {const left (h3component with slow components passed as props/h3pClick the block - slow components will NOT re-render/pVerySlowComponent //);const right AnotherSlowComponent /;return (ComponentWithClick left{left} right{right} //); };React.memo缓存子组件与useCallback结合 React.memo方法是一个高阶函数参数是一个组件A返回包装过的新组件B。 包装过的新组件B具有缓存功能只有组件A的props发生变化才会触发组件重新渲染。 注意点 这里props 是浅比较在将对象和方法作为 props 传递时必须考虑到引用地址的问题(如果地址变化也会被认为props变化了)。 解决办法 在父组件中对于需要传递给子组件的引用类型 使用useCallback缓存函数使用useMemo缓存函数返回的结果(本场景的作用是缓存对象) 比如选中的子组件高亮父组件维护一个选中子组件的activeId。 优化前写法在子组件中对比当前Id是否与activeId一致。 点击子组件时activeId一直变化所以每个子组件的props会变化。 const children({activeId,id}){const isActive activeIdid;return (div className{isActive?active:}/div) } 优化后写法 思路缓存子组件当props变化时才渲染。在父组件判断当前子组件是否选中的如果选中传递className(这里可以自定义props传递什么都行)。这样的好处是className变化的子组件才会重新渲染。 // 在父组件中使用子组件 FolderclassName{activeId item.id ? active : }key{item.id}id{item.id}/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91953.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做网络推网站推广的目的黑户可做网站

本地TS播放过程 本地M3U8播放过程 http工作流程 http分两个步骤 1、获取m3u8文件,这个是在哪里开始读的? 2、获取data数据,这个是从http_read开始读,可以通过修改这里实现buffer数据和引擎对接 3、s->user_agent,s->off,…

房产网站方案扫描网站漏洞的软件

题目: 编写一个名为 collatz()的函数,它有一个名为 number 的参数。如果参数是偶数,那么 collatz()就打印出 number // 2,并返回该值。 如果 number 是奇数,collatz()就打印并返回 3 * number 1。 然后编写一个程序&a…

公司网站改版方案网站开发薪资

**单片机设计介绍,基于单片机干湿垃圾自动分类系统 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的干湿垃圾自动分类系统是一个集成传感器技术、机械控制和单片机编程于一体的自动化解决方案。该系统的主要目标是实…

培训网站免费在线做ppt

文章目录一、创建SpringBoot项目二、添加Mybatis相关依赖三、数据源配置四、创建事务的模型实体类五、创建和数据库交互联系的映射关系类六、创建业务接口和实现类七、创建控制器类八、请求验证一、创建SpringBoot项目 如何创建详见:IDEA 创建 SpringBoot 项目 二、…

网站如何做软文推广wordpress xiu主题

我正在尝试创建一个动态数据库创建脚本.有很多步骤,我们经常创建这个数据库,所以脚本看起来像这样.DECLARE databaseName nvarchar(100) DatabaseNameEXEC(/*A lot of database creation code built off of databaseName*/)除了我们在此数据库中创建的一个视图外,这一切都很好…

网站维护进不去怎么办网站服务器ip

客户端缓存是万维网的基础之一。 服务器应告知客户端资源的有效性,客户端应尽可能快地对其进行缓存。 如我们所见,如果不缓存Web,将会非常慢。 只需在任何网站上Ctrl F5并将其与普通F5进行比较-后者就会更快,因为它使用了已缓存的…

广州企业网站建设开发创意交易平台官网

解题思路: 输入n3 n 0 1个 n 1 1个 n 2 2个 头1头2头3 头1 左子树0节点(个数)x右子树2个节点(个数) 头2 左子树1节点(个数)x右子树1个节点(个数) 头3 左子…

国内很多网站不是响应式宁波北京网站建设

过期策略 我们set key的时候,都可以给一个expire time,就是过期时间,指定这个key比如说只能存活1个小时,我们自己可以指定缓存到期就失效。 如果假设你设置一个一批key只能存活1个小时,那么接下来1小时后,r…

网站开发查找漏洞的工具天津市建设与管理网站

关于北京同创天成工程勘测有限公司等29家单位申报甲级测绘资质审查意见的公示  根据《中华人民共和国测绘法》和《测绘资质管理规定》《测绘资质分级标准》(国测管发〔2014〕31号),我部对北京同创天成工程勘测有限公司、北京麦格天宝科技股份有限公司、中友四达(北…

没有备案的网站怎么访问合肥网站建设 微笑互联

算法题 Leetcode 39. 组合总和 题目链接:39. 组合总和 大佬视频讲解:组合总和视频讲解 个人思路 这道组合题主要是有总和的限制,当递归和超过了总和就return,递归时加上回溯去遍历数组。 解法 回溯法 把组合问题抽象为如下树形结构 如上…

网站开发与数据库网站美工做专题尺寸多少

来源:神经科技近日,在针对健康志愿者的的一项研究中,美国国立卫生研究院(NIH)的研究人员发现,大脑可能会通过短暂的休息来巩固我们几秒钟前刚练习过的新技能的记忆。该研究结果强调了早期休息在学习中可能发…

做职业装的网站公司网站招聘费如何做会计分录

2021牛客暑期多校训练营2 题号题目知识点AArithmetic ProgressionBCannonCDraw GridsDEr Ba GameEGas StationFGirlfriendGLeague of LegendsHOlefinIPenguinsbfsJProduct of GCDsKStackLWeChat Walk

网站定制开发公司推荐wordpress资源站

nodejs中使用modbus-serial库创建Modbus TCP读取设备的数据在nodejs中安装modbus-serial库本人使用的开发环境是Windows10下的VSCode,安装并配置好了npm、node、cnpm等工具,使用cnpm安装了modbus-serial库,可以在npm中搜到modbus-serial包以及…

门户网站建设和运行招标公告双线网站选服务器

转载自 面象对象设计6大原则之六:迪米特原则迪米特原则(LOD),The Law Of Demeter,也称为最少知识原则定义一个对象应该对其他对象有最少的了解。也就是说一个类耦合和调用一个类应该知道的最少,它只关心被耦…

网站推广初期目标网站海外推广资源

国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操作是这样的: 首先,给每位新娘打扮得几乎一模一样,并盖上大大的红盖头随机坐成一排; 然后,让各位新郎寻找自己的新娘.每人只准找一个,…

vs做网站开发吗绛帐做企业网站

【前沿技术杂谈:迁移学习】欧洲人工智能法案对人工智能开发者的意义 [2023 年 12 月更新] 定义、一般原则和禁止做法人工智能系统开发者基于风险的义务固定和通用人工智能开发人员(第 3/28 条)基础模型的提供者(第 28b…

深圳龙华 网站建设网站建设vipjiuselu

本节复习排序中的希尔排序,希尔排序属于插入排序。 希尔排序的代码和插入排序非常类似。 思想却相对于插入排序来说复杂。 在复习希尔排序之前, 我们需要先复习一下插入排序。 目录 插入排序 插入过程 代码实现 希尔排序 希尔排序的思想 代码实…

做加工都在哪个网站推广电商网站创办过程

英杰社区https://bbs.csdn.net/topics/617804998 一、背景 近年来,Python在数据爬取和处理方面的应用越来越广泛。本文将介绍一个基于Python的爬虫程 序,用于抓取豆瓣电影Top250的相关信息,并将其保存为Excel文件。 程序包含以下几个部…

阿里云的网站接入方式网站空间 群集

反射 反射的概念 反射机制允许程序在执行期借助于ReflectionAPI取得任何类的内部信息(比如成员变量,构造器,成员方法等等),并能操作对象的属性及方法。反射在设计模式和框架底层都会用到加载完类之后,在堆中就产生了一个Class类型…

备份wordpress网站网站建设增城

一、协议族体系结构 TCP/IP协议族分为四层协议系统,自底向下分别为数据链路层、网络层、传输层、应用层。 数据链路层常用ARP(地址解析协议)和RARP(逆地址解析协议)。在网络层使用IP寻址,而在数据链路层使用…