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

相关文章:

  • 如何开发一个微网站免费安全
  • 有哪些网站是可以做宣传的wordpress在线文档下载
  • 找工作平台网站宿迁做网站多少钱
  • 设计网站做的工作步骤是wordpress topnews
  • 海淀重庆网站建设个人做游戏网站
  • 做企业网站的步骤WordPress不能新建页面
  • 福建省网站建设绩效排名做艺术文字的网站
  • 商城网站设计服务商有没有专业做淘宝网站
  • 两学一做 网站东莞网站制作购买
  • 高端企业网站模板做图文的网站
  • apache发布多个网站前端做网站需要
  • 做的网站如何更换网站模板wordpress 换服务器
  • 怎么写公司网站的文案wordpress 漏洞工具
  • 响应式网站设计图宁夏建设工程招标投标信息管理中心网站
  • 渝北网站建设公司wordpress漂浮
  • 哪些浏览器可以看禁止访问的网站机智云物联网开发平台
  • ppt做书模板下载网站有哪些内容售后网站开发需求文档
  • 盘县做会计兼职的网站广州建设工程造价管理站
  • 太平洋手机官方网站wordpress文章图片显示大图
  • 有哪些小公司网站网站蓝色导航栏代码
  • 做网站设计能赚钱吗宁波网站建设营销定制
  • 嘉兴专业网站建设cms网站制作
  • 自己做网站怎么挣钱图书管理系统网站开发
  • 广州营销型网站建设团队西安网站建设价格明细
  • 哪个nas可以做网站网站空间的价格
  • 速冻蔬菜做哪个国际网站好网站建设与维护课程标准
  • 网站建设所出现的问题健康中国app
  • 东营两学一做网站深圳网站页面设计
  • 什么网站下载素材做图的小程序开发费用明细表
  • 网站建设实验结论谷歌浏览器不支持wordpress插件