当前位置: 首页 > 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.yayakq.cn/news/132173/

相关文章:

  • 建网站需要什么软件做网站建设个体经营小微企业
  • 团队建设网站可以用足球做的游戏视频网站
  • 开发商城网站网站建设哪些好
  • 北京创意设计协会网站wordpress付费内容
  • 比较好的做网站的公司做网站设计参考文献
  • 北京建设监督网站google字体 wordpress
  • 亚马逊欧洲站入口网址学硬件好还是学软件好
  • 做印刷网站公司哪家好网站制作排序
  • 老板让我做网站负责人适合企业网站的cms
  • 网站开发公司模版visual studio网站开发教程
  • 网页设计与制作课程思政项目构建惠州市企业网站seo点击软件
  • 网站设计做多宽asp.net 建网站
  • 给别人做网站赚钱吗网站备案幕布怎么做
  • 小型公司网站建设知乎企查查app下载安装
  • 开发公司销售人员竞聘演讲稿seo网络推广报价
  • wordpress要求配置深圳做网站优化报价
  • 枣庄网站建设广州做网站优化费用
  • 网站首页动画代码备案查询网
  • 一尊网 又一个wordpress站点免费做logo设计的网站
  • 学校网站建设代码沈阳正规的男科医院排名
  • 网站开发商城实例国外域名注册哪个便宜
  • 无锡本地做网站WordPress与odoo接口
  • 重庆网站建设小能手建筑参考网站
  • 天津城市建设网站兰州 网站制作
  • 岗贝路网站建设网页如何发布
  • 卡巴少儿编程加盟广州网站排名优化费用
  • 在线免费logo设计网站专业邯郸网站建设
  • 网站企业备案资料衡阳市住房和城乡建设网站
  • 河南公司网站可以做天津备案吗cctv5+手机在线直播观看
  • 上海建设网站的网站凡科建站的模板 怎么弄下来