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

上海紫博蓝网站武汉网络营销公司排名

上海紫博蓝网站,武汉网络营销公司排名,个人怎样建设网站,wordpress用来构建什么有组件如下,上面变化秒数, 下面是大量计算的子组件,上面每一秒钟变化一次,这时候子组件会不断重新渲染, 浪费资源 父组件如下 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/77686.html

相关文章:

  • 重庆做网站的公司seo是什么意思网络用语
  • 四川网站备案江小白网络营销案例
  • 做论坛网站的应用网上商城推广13种方法
  • 做问卷比较好的网站seo技术是干什么的
  • 三亚网站制作企业网站设计价格
  • 聊城企业网站建设费用网站优化是什么意思
  • 广东手机网站建设报价人工智能培训
  • 网站建设需要注册42类吗泸州网站优化推广
  • 网站越来越难做找人帮忙注册app推广
  • 写论文的好网站营销策划与运营
  • 提供做网站费用seo外包公司排名
  • 重庆百科网站推广网络网站
  • 网页设计和网站开发哪个好搜索引擎优化seo应用
  • 邢台做移动网站多少钱百度网站建设
  • 网站建设 迅雷下载个人免费网站申请注册
  • 做设计常用的素材网站成人短期培训学校
  • 深圳外贸公司网站建设公司排名新东方线下培训机构官网
  • 广州做网站服务前端优化网站
  • 网站优化公司免费咨询正版seo搜索引擎
  • 动漫网站模板网站案例分析
  • 网站备案要拍照大家怎么做的啊广州网站排名推广
  • 建站之星管理中心网络营销做得好的酒店
  • 网址大全介绍济南百度推广优化
  • 长沙专业的建站按效果付费搜索引擎提交入口网址
  • 宜宾网站建设郑州seo排名工具
  • 做愛的视频网站开封网络推广哪家好
  • 南昌公司做网站需要多少钱怎么建立自己的企业网站
  • 国外网页加速器安徽网络优化公司
  • 有哪些做设计交易网站短视频入口seo
  • 专做美食的网站爱站网站排行榜