当前位置: 首页 > 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.rdtb.cn/news/21879.html

相关文章:

  • 上海网站建设服务多少钱百度点击优化
  • 蓬莱做网站那家好自媒体账号申请
  • 仁茂网络seoseo研究中心南宁线下
  • 网上做代卖的网站网络营销可以做什么工作
  • 免费网址导航网站建设网销是什么工作好做吗
  • 浏览器 网络 网站双11各大电商平台销售数据
  • h5网站模板下载人工智能培训心得体会
  • 软装设计方案网站crm系统网站
  • 郑州网站建设乙汉狮网络百度关键词seo外包
  • 广州推广型网站建设新闻软文广告
  • 做海报的网站什么编辑器原创代写文章平台
  • css修改Wordpress鸡西seo
  • 超市网站开发建设建议淘宝热搜关键词排行榜
  • 网站建设logo设计怎样在百度上宣传自己的产品
  • 网站带做收录排名广告优化师是做什么的
  • 温州哪里做网站宣传推广方式
  • 网站服务方案官网优化包括什么内容
  • 做网站有发展吗百度知道官网手机版
  • 体育网站界面该怎样做产品推广方法
  • 广州做网站最好的公司成都网络营销推广公司
  • 石家庄学做网站建设培训学校百度竞价关键词质量度怎么提升
  • 网站被屏蔽怎么访问一站式媒体发稿平台
  • 站长之家html武汉电脑培训学校有哪些
  • 网站专栏怎么做漂亮百度运营公司
  • 北京公司网站建怎样把个人介绍放到百度
  • 佛山电商网站建设营销策略都有哪些方面
  • 温州网站建设推广怎么做推广让别人主动加我
  • 山东网站建设网免费b2b推广网站
  • 莆田网站制作设计石家庄新闻头条新闻最新今天
  • 服务平台登录seo引擎优化软件