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

建设工程 质量 协会网站网站开发接私活的经理

建设工程 质量 协会网站,网站开发接私活的经理,上海有哪些互联网公司,作为一个大学生网站 应该怎么做因个人工作原因#xff0c;在2023年学起了React TS 这个 “前端大佬” “高阶玩家” 标配的技术栈#xff0c;一套学习下来个人总结就是#xff1a;React真特么难用#xff01;传染病式的渲染逻辑是真让人难受#xff01;维护之前的代码就是深渊#xff01;难怪React项目…因个人工作原因在2023年学起了React TS 这个 “前端大佬” “高阶玩家” 标配的技术栈一套学习下来个人总结就是React真特么难用传染病式的渲染逻辑是真让人难受维护之前的代码就是深渊难怪React项目标配TS没个TS给这货加点限制这玩意写出来的代码就更没法看了——以上总结仅代表个人使用感受至于React的设计如何牛逼我感受不到我也不配讨论勿喷 如何解决React组件抽风式的刷新问题小编使用解释和源码示例的方式讲解一下 memo 父组件属性变化都会导致子组件重新执行即使传入子组件props没有任何变化甚至子组件没有依赖于任何props属性都会导致子组件重新渲染 使用memo包裹子组件时只有props发生改变子组件才会重新渲染,以提升一定的性能 // 子组件 // 若不适用 memo API,父组件每次跟新 time 时子组件都会重新渲染输出 List 被渲染 const List memo((props:{list:Arraystring }){console.log(List 被渲染)return (ol{props?.list.map(item{return ( li key{item}{item}/li )})}/ol/) })export default () {const [ time,setTime ] useState(0);const [ list,setList ] useStatestring[]([]);useEffect((){setTimeout(() {setTime(time1);}, 1000);},[time])return (h1页面浏览时长{time}秒/h1List list{list} //); }; useMemo 父组件将一个值传递给子组件若父组件的其他值发生变化时子组件也会跟着渲染多次会造成性能浪费 useMemo是将父组件传递给子组件的值缓存起来只有当 useMemo中的第二个参数状态变化时子组件才重新渲染useMemo便是用于缓存该函数的执行结果仅当依赖项改变后才会重新计算 // 子组件 const List memo((props:{oddOrEven?:string,list:Arraystring }){console.log(List 被渲染)return (h3列表长度为{props.oddOrEven}/h3ol{props?.list.map(item{return ( li key{item}{item}/li )})}/ol/) })export default () { const [ time,setTime ] useState(0);const [ list,setList ] useStatestring[]([]);useEffect((){setTimeout(() {setTime(time1);}, 1000);},[time])// 奇数或偶数// 当传递给子组件的值是通过函数返回的情况下需要使用 useMemo Hookconst oddOrEven useMemo((){return (list.length % 2 0 ? 偶数:奇数);},[list])return (h1页面浏览时长{time}秒/h1List list{list} oddOrEven{oddOrEven} //); }; useCallback 父组件将一个方法传递给子组件若父组件的其他状态发生变化时子组件也会跟着渲染多次会造成性能浪费 usecallback是将父组件传给子组件的方法给缓存下来只有当 usecallback中的第二个参数状态变化时子组件才重新渲染如果传入的props包含函数父组件每次重新渲染都是创建新的函数所以传递函数子组件还是会重新渲染即使函数的内容还是一样我们希望把函数也缓存起来于是引入useCallback // 子组件 const List memo((props:{list:Arraynumber,click:(number:any)void }){console.log(List 被渲染)return (button typebutton onClick{(){const t new Date().getTime();props.click(t);}}添加/buttonol{props?.list.map(item{return ( li key{item}{item}/li )})}/ol/) })export default () {const [ time,setTime ] useState(0);const [ list,setList ] useStatenumber[]([]);useEffect((){setTimeout(() {setTime(time1);}, 1000);},[time])// 若传递给子组件的属性有函数需要使用 useCallback Hook否则子组件发疯式的重新渲染const handleClick useCallback((time:number){setList([...list,time])},[list])return (h1页面浏览时长{time}秒/h1List list{list} click{ handleClick } //); }; useMemo 和 useEffect 区别 useEffect是在DOM改变之后触发useMemo在DOM渲染之前触发useEffect可以帮助我们在DOM更新完成后执行某些副作用操作如数据获取setState不要在这个useMemo函数内部执行与渲染无关的操作诸如副作用这类的操作属于 useEffect 的适用范畴而不是 useMemo在useMemo中使用setState你会发现会产生死循环并且会有警告因为useMemo是在渲染中进行的你在其中操作DOM后又会导致触发memo 小分享我每次看完React文档后我觉得我学会了过一周后我发现自己还没学会。。这玩意坑到底还有多少我醉了 作者黄河爱浪 本文原创著作权归作者所有转载请注明原链接及出处
http://www.zqtcl.cn/news/674338/

相关文章:

  • 建站公司上海企业官网模板下载
  • 网站建设推广话术wordpress 不显示缩略图
  • 企业电子商务网站建设和一般百拓公司做网站怎么样
  • 吉林网站建设司上海什么做网站的公司比较好
  • 吉安市建设规划局网站jsp wordpress
  • 建设银行贵金属网站微信小程序注册后怎么使用
  • 如何做律师网站河南建网站 优帮云
  • 云阳如何做网站网站建设旅游
  • 推荐一个简单的网站制作单位网站服务的建设及维护
  • tp5网站文档归档怎么做网站 信用卡支付接口
  • phpcms 企业网站网站建设中单页代码
  • 坑梓网站建设方案网络编程技术及应用
  • 电子商务网站建设 价格新媒体运营需要具备哪些能力
  • 做生存分析的网站电商网站运营建设的目标
  • 佛山 做网站邮箱官方网站注册
  • 生成flash的网站源码表白二维码制作网站
  • 定做专业营销型网站网站开发应用
  • 万盛建设局官方网站如何用群晖nas做网站
  • 建设装饰网站郑州惠济区建设局网站
  • 网站做标题有用吗网站优化多少钱
  • 婚庆设备租赁网站源码如何进行网站的建设和维护
  • 青岛做网站公wordpress文章付费阅读
  • 小灯具网站建设方案360优化大师
  • 开发公司与物业公司前期合同网站优化的推广
  • 汉堡云虚拟主机aso安卓优化公司
  • 医院 网站建设 新闻营销外包
  • 优秀网站网址郑州无痛人流哪家医院好
  • 备案网站能打开吗大良营销网站建设流程
  • 哪些网站可以做淘宝店招石油网站编辑怎么做
  • 网站出现建设中集团网站建设特点