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

上海紫博蓝网站在线crm管理系统

上海紫博蓝网站,在线crm管理系统,莆田外贸网站建设,谁有做爰网站号有组件如下,上面变化秒数, 下面是大量计算的子组件,上面每一秒钟变化一次,这时候子组件会不断重新渲染, 浪费资源 父组件如下 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.mmbaike.com/news/23011.html

相关文章:

  • 百度推广的网站怎么做知名网站排名
  • 接做网站的私活怎么报价360广告推广平台
  • 网站模板制作与安装教程视频四年级下册数学优化设计答案
  • wordpress做阿里巴巴国际站个人网站免费推广
  • 网站的策划建设方案书长沙网站优化指导
  • 东莞市网站建设世界十大网站排名
  • 做网站用什么格式的图片有什么推广产品的渠道
  • 视频网站分享复制通用代码怎么做运营主要做什么工作
  • wordpress电影采集网站优化名词解释
  • 企业官网响应式网站拉新推广渠道
  • 罗湖附近公司做网站建设长沙的seo网络公司
  • 网站开发服务器多少钱网络推广运营是做什么
  • 软件开发的步骤流程鄂州网站seo
  • wordpress建站不好用山东移动网站建设
  • 建设内容管理网站的目的web网站设计
  • 俄文网站策划seo博客写作
  • 大量图片展示网站模板seo如何提高网站排名
  • 宁波做网站公司html网页制作用什么软件
  • 电子商务门户网站的研究与实现手机怎么制作网站
  • 分类信息网站 建议 建设国内新闻摘抄2022年
  • 传奇私服网站做ssl外链吧
  • 湖北手机网站建设百度财报q3
  • 德州市建设街小学网站首页全球搜索引擎市场份额
  • 用邮箱做网站凡科建站手机版登录
  • 淘宝上 网站建设能打开各种网站的搜索引擎
  • 正规的大连网站建设疫情防控最新通告
  • 网站开发招聘简历模板百度关键词优化软件网站
  • 东莞门户网站建设方案深圳搜索排名优化
  • 专业做美食视频的网站北京最新疫情
  • 建微网站需要购买官网主机吗seo计费怎么刷关键词的