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

做的好的响应式网站有哪些仿站下载工具

做的好的响应式网站有哪些,仿站下载工具,动画制作软件手机,网站集约化建设报告memo : 被memo包裹的组件,会浅层比较 props,不会深度比较,如果浅层比较相同,就不会重新渲染组件 默认是,无论怎么,都会重新渲染一遍子组件,, useMemo: 包裹一个函数&am…

memo : 被memo包裹的组件,会浅层比较 props,不会深度比较,如果浅层比较相同,就不会重新渲染组件

默认是,无论怎么,都会重新渲染一遍子组件,,

useMemo: 包裹一个函数,返回一个值,,只会在监听的状态改变的时候,才会重新执行一遍这个函数

这两个用来避免重新渲染,子组件,,或者重新执行一个复杂的函数,,,在不需要的情况下,,比如说,你的状态改变跟某个子组件没有关系,,就不用触发这个子组件的重新渲染

父组件:

import {useMemo, useState} from "react";
import ChildComponent from "./children/ChildComponent";function HeheMemo(){const [count, setCount] = useState(0)const [text, setText] = useState("")function expensiveResult(){console.log("recalculate...")// return Math.random().;return Math.floor(Math.random()*1000000)}const memoizedValueValue = useMemo(()=>expensiveResult(),[count])// 只有当count变化的时候,才会重新渲染子组件const memoizedChild = useMemo(()=>{return <ChildComponent count={count}/>},[count])return(<div><h1>expensive calculation</h1><ChildComponent count={count} /><div>count : {count}</div><div>expensive {memoizedValueValue} </div><button onClick={()=>setCount(count+1)}>btn</button><input type="text" onChange={e=>setText(e.target.value)}/></div>)
}export default HeheMemo

子组件:

import React, {memo} from "react";// interface ChildProps extends React.ComponentProps<any>interface ChildProps{count:number
}const Child = memo((props:ChildProps)=>{console.log("我被渲染了")return (<div> child component --{props.count} </div>)
})export default Child
useRef

setState 会触发页面的重新渲染,,就会重新执行函数,,,,像那种计时器,如果第二次渲染就变了,,需要保证是同一个定时器,,使用useRef,,
useEffect()只会在依赖变化的时候重新执行,,如果依赖没有变化,他取得就是最开始的那个状态,,,闭包中的函数和变量是静态的,,函数捕获了定义时的变量环境,,后续无法感知变量的变化

import React, {Component, useEffect, useRef, useState} from 'react';function Hello02() {const [text, setText] = useState("")function handleClick(){console.log("click with text"+text)}const clickRef = useRef<Function>(null);clickRef.current = handleClick/*** 初次渲染 ===》   clickRef被赋值,,* 后续渲染 ===》 setText() ==> 更新状态,触发再次渲染 ==》 clickRef重新被赋值*** 闭包中的函数和变量是静态的,,函数捕获了定义时的变量环境,,后续无法感知变量的变化*/useEffect(()=>{const interval =   setInterval(()=>{clickRef.current?.()},1000)return ()=>clearInterval(interval)},[])return (<div><input type="text" value={text} onChange={e=>setText(e.target.value)}/><button onClick={handleClick}>btn</button></div>)
}export default Hello02;

useState:可以获取之前的状态

    const startTimer = ()=>{if (!timeRef.current){timeRef.current = window.setInterval(()=>{setCount(prevState => prevState+1)},1000)}}
useCallback

父组件在传递回调函数给子组件的时候,,如果父组件更改了状态,重新渲染,,这个函数会被重新创建,返回一个新的函数,,这个新的函数的引用,,让props改变了,导致子组件,,即使使用了 memo,,也会重新渲染

使用 useCallback记忆化回调函数,,这个函数就不会返回新的引用

import {memo, useCallback, useState} from "react";
interface ChildProps{onClick:()=>void
}
const Child = memo(({onClick}:ChildProps)=>{console.log("child render...")return (<div onClick={onClick}>child</div>)
})function Parent(){const [count, setCount] = useState(0)// function handleClick(){//     console.log("click")// }const handleClick = useCallback(()=>{console.log("click")},[])return (<div><p>{count}</p><button onClick={e=>setCount(count+1)}>btn</button><Child onClick={handleClick}></Child></div>)
}export default Parent

文章转载自:

http://11XsB5uU.bwygy.cn
http://1Xzy5eR0.bwygy.cn
http://UUPbt2ch.bwygy.cn
http://krkVonGW.bwygy.cn
http://XfsW9Fm8.bwygy.cn
http://ksAQyJ9r.bwygy.cn
http://vcQIZE7f.bwygy.cn
http://UkZiIFrO.bwygy.cn
http://9wDDXEFg.bwygy.cn
http://C41MDtSp.bwygy.cn
http://Z7XnOxjQ.bwygy.cn
http://tLETh9ZQ.bwygy.cn
http://MgxuPosO.bwygy.cn
http://fupvw8Ha.bwygy.cn
http://T4bXqvmE.bwygy.cn
http://m9zrByHN.bwygy.cn
http://w40BNXlu.bwygy.cn
http://vVOfZHvf.bwygy.cn
http://G2JXZTkO.bwygy.cn
http://N2XJnNrp.bwygy.cn
http://ArzIBw3c.bwygy.cn
http://AwFqGa73.bwygy.cn
http://36ayVELb.bwygy.cn
http://Ul9lNehk.bwygy.cn
http://IDak4LR6.bwygy.cn
http://WaudlO1Y.bwygy.cn
http://hPfB5g3J.bwygy.cn
http://GJKHE3h4.bwygy.cn
http://ugnwxx2z.bwygy.cn
http://RmS7evGo.bwygy.cn
http://www.dtcms.com/wzjs/711665.html

相关文章:

  • .name后缀的网站策划工资一般多少钱
  • 青海住房与城乡建设厅网站广州白云住房和建设局网站
  • 做网站需要的执照山东东营市房价
  • 制作手机网站什么软件下载新浪网页版入口
  • 做的比较好的卡车网站微信官网网页版
  • 邯郸网站制作58网站建设58xiamen
  • 打好代码怎么做网站自己做一个app需要多少钱
  • php做网站都需要学什么软件app开发报价单
  • 求个2022手机能看的兰州人工优化
  • 工程信息网站建设自闭症网站的建设意义
  • 医疗营销网站建设方案做百度关键词网站
  • 沈阳市城乡建设部官方网站手机网站 自适应屏幕
  • 专业提供网站建设服务包括哪些甘肃嘉峪关建设局网站
  • 织梦网站404页面模板计算机专业里面哪个专业最好
  • 网站建设电话着么打如何不备案建网站
  • 中学建设校园网站方案企业网站设计一般多少钱
  • 贵阳查房子备案的网站承德房地产网站建设
  • 微信运营网站建设河北美丽乡村建设网站
  • 网站建设 博采安卓版下载app
  • 北京网站建设小鱼在线天眼通查公司查询入口
  • 运城住房和建设局网站ppt模板免费网站在线制作
  • 准备网站的工作制作人结局金秀贤和谁在一起了
  • 中小企业网站建设价位wordpress4.3 撰写设置
  • 软件下载网站制作电子信箱注册网站
  • 做网站设计工资多少钱网址怎么申请注册
  • 企业门户网站开发价格网站开发外包维护合同
  • 福州 网站设计公司北京专业网站设计制作
  • 宿松县住房和城乡建设局网站校园网站建设培训
  • 专业的网站建设公司排名有没有专门做根雕的网站
  • 容桂网站开发国内知名互联网公司