当前位置: 首页 > news >正文

上海紫博蓝网站企业广告宣传

上海紫博蓝网站,企业广告宣传,网站空间的价格,高端网站建设搭建有组件如下,上面变化秒数, 下面是大量计算的子组件,上面每一秒钟变化一次,这时候子组件会不断重新渲染, 浪费资源 父组件如下 import React, { memo, useEffect, useMemo, useState } from react; import type { ReactNode, FC } from react; import HugeCount from ./Te; int…

 有组件如下,上面变化秒数, 下面是大量计算的子组件,上面每一秒钟变化一次,这时候子组件会不断重新渲染, 浪费资源

父组件如下

import React, { memo, useEffect, useMemo, useState } from 'react';
import type { ReactNode, FC } from 'react';
import HugeCount from './Te';
interface IProps {children?: ReactNode;
}const template: FC<IProps> = () => {const [time, setTime] = useState(new Date());useEffect(() => {console.log('渲染主体组件');setTimeout(() => {setTime(new Date());}, 1000);}, [time]);return (<div>{time.getSeconds()}<HugeCount  /></div>);
};export default memo(template);

子组件如下

import React, { memo, useEffect, useMemo, useState } from 'react';
import type { ReactNode, FC } from 'react';interface IProps {children?: ReactNode;data: {};bad: any;
}const template: FC<IProps> = (props) => {const [num, setNum] = useState(100);const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {setNum(Number(e.target.value));props.bad();};const hugeCount = () => {console.log('大量计算');return num;};const result = useMemo(hugeCount, [num]);// const result = useMemo(()=>hugeCount(), [num]);useEffect(() => {console.log('渲染大量计算组件');});return (<div><input type='text' onChange={(e) => handleChange(e)} /><div>大量计算结果:{result}</div></div>);
};export default template;

 什么是纯组件?

组件 的核心特性是避免不必要的渲染,它通过浅比较 propsstate 来决定是否更新 UI。纯组件本身不抑制副作用,它只是优化了渲染的过程。

先说state, 大量计算的子组件的state并未变化, 所以理应不变, 这时候先优化自身导出,用memo

这时候可了, 再说props,我在父组件传这个给子组件,然而秒数刷新子组件重新渲染,为什么

  const data = {name:"23"}

因为这个是引用类型,父组件秒数变化时刷新页面, 这个data会重新生成地址,所以props变了,子组件就刷新 ,那怎么办?

用useMemo,或者useState, 这2有缓存功能

 const [data, setData] = useState(33);

同理,你想传函数, 用useCallback,不然父组件重新渲染, 你子组件收到的函数是新的地址!! 然后重新渲染, 浪费性能

  function bad() {console.log('hahah');}const badFun = React.useMemo(() => bad, []);

 



小useMemo细节,2种写法都可, 前者比如是一个无参数, 后者可传参

  const result = useMemo(hugeCount, [num]); const result = useMemo(()=>hugeCount(), [num]); 

http://www.yidumall.com/news/47460.html

相关文章:

  • 怎么里ip做网站宁波seo在线优化方案公司
  • 网站索引怎么做市场策划方案
  • 南京专业做网站的公司哪家好国际局势最新消息今天
  • 如何做电商网站分析报告常用的网络推广的方法有哪些
  • 178网站建设google广告
  • 那家公司做网站新闻稿件
  • 网站做效果联系方式自媒体135网站免费下载安装
  • 张家港网站制作哪家好网络推广与优化
  • wordpress 内存不断上升齐三seo顾问
  • 深圳福田区住房和建设局官方网站网站搭建平台都有哪些
  • 长沙做网站多少钱竞价网站
  • 广渠门做网站的公司合肥百度推广优化
  • 网站备案还是域名备案网站的宣传与推广
  • 郑州网站建设设计公司谷歌推广怎么样
  • 遵义网站建设百度客户端在哪里打开
  • 东莞网络公司网站建设唐山seo优化
  • 做数据图网站谷歌官方网站
  • 聊天网站站怎么做找个免费的网站
  • 怎么做课题组网站灰色关键词排名收录
  • php做网站后台百度收录网站要多久
  • 做网站友情链接的步骤每日军事新闻
  • 官方网站建设教程推广链接点击器app
  • 柳州企业网站建设代发百度关键词排名
  • 中国人民银行网点流程优化
  • wap网站推荐系统清理优化工具
  • 工艺品网站怎么做百度秒收录软件
  • 国内校园网站建设交换友情链接前后必须要注意的几点
  • wordpress文章数量太原网站建设优化
  • 冒险岛钓鱼网站做啥用百度推广账号
  • 网页设计总结报告500字广州网站营销优化qq