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

福清建设局网站简介太原互联网推广公司

福清建设局网站简介,太原互联网推广公司,网站怎么分工做,建站宝盒建站系统结论: 16 hooks版本 默认render1次 同步中,无论多少种类还是次数,都render 1次。 异步中,无论多少种类还是次数,1个种类执行1次,多次的话,用n*2。 18 hooks版本 默认render2次, 同步…

结论:

16 hooks版本
默认render1次
同步中,无论多少种类还是次数,都render 1次。
异步中,无论多少种类还是次数,1个种类执行1次,多次的话,用n*2。
18 hooks版本
默认render2次,
同步中,无论多少种类还是次数,都render 2次。
异步中,无论多少种类还是次数,都render 2次。
15版本, class版本
this.setState是异步的,set 3次就会合并,在callback可以获取最新值
但是在setTimeout同步的。(set 3次就会执行三次)
15 class版本看这个地址

react18

import React, { useState, useEffect } from 'react';
// 最新的react 16
function Test() {console.log('----render') // 默认执行2次const [countA, setCountA] = useState(111);const [countB, setCountB] = useState(222);function onClick() {// 一个种类,一个set执行2次render// 二个种类,各一次set,那么执行2次render// 二个种类及以上,执行2次render,还是执行2次setCountA(countA + 1)// setCountA(countA + 1)// setCountA(countA + 1)// setCountA(countA + 1)// setCountB(countB + 1)// setCountB(countB + 1)// setCountB(countB + 1)// setCountB(countB + 1)setTimeout(() => {// 一个种类,一个set执行2次render// 二个种类,各一次set,那么执行2次render// 二个种类及以上,执行2次render,还是执行2次// setCountA(countA + 1)// setCountA(countA + 1)// setCountA(countA + 1)// setCountA(countA + 1)// setCountB(countB + 1)// setCountB(countB + 1)// setCountB(countB + 1)// setCountB(countB + 1)});}useEffect(() => {}, []);return (<div><p>{countA}-{countB}</p><button onClick={onClick}>点击我</button></div>)
}
export default Test;
react16
import React, { useState, useEffect } from 'react';
// 最新的react 16
function Test() {console.log('--render') // 默认执行1次const [countA, setCountA] = useState(111);const [countB, setCountB] = useState(222);function onClick() {// 一个种类,一个set执行1次render// 二个种类,各一次set,那么执行1次render// 二个种类及以上,执行2次render,还是执行1次// setCountA(countA + 1)// setCountA(countA + 1)// setCountA(countA + 1)// setCountA(countA + 1)// setCountB(countB + 1)// setCountB(countB + 1)// setCountB(countB + 1)// setCountB(countB + 1)setTimeout(() => {// 一个种类,一个set执行1次render// 二个种类,各一次set,那么执行2次render// 二个种类及以上n,执行2次render及以上,n*2setCountA(countA + 1)setCountA(countA + 1)setCountA(countA + 1)setCountA(countA + 1)setCountB(countB + 1)setCountB(countB + 1)setCountB(countB + 1)setCountB(countB + 1)});}useEffect(() => {}, []);return (<div><p>{countA}-{countB}</p><button onClick={onClick}>点击我</button></div>)
}
export default Test;
react16, 18
import React, { useState } from 'react';function App() {const [number, setNumber] = useState(0);function alertNumber() {setTimeout(() => {alert(number); // 操作步骤,先点击弹窗,然后快速+按钮,永远弹出的是0,16和18都这样子}, 3000);}return (<div className="App"><p>{number}</p><button onClick={() => setNumber(number + 1)}>+</button><button onClick={alertNumber}>alertNumber</button></div>);
}
export default App;

一下的以前的博客,不可靠

react刷新几次问题

15版本, class版本
this.setState是异步的,set 3次就会合并,在callback可以获取最新值
但是在setTimeout同步的。(set 3次就会执行三次)
15 class版本看这个地址
16版本,hooks版本
setState set几次就会render几次,但是有惰性。不会批处理。
18版本
批处理了。异步。可以调用同步的api。
setTimeout中的也可以批处理了。
legacy模式下:命中batchedUpdates时是异步 未命中batchedUpdates时是同步的
concurrent模式下:都是异步的,react 17添加了这个concurrent模式

react 16 setTimeout异步中的setA不可控制

useState会对state进行逐个处理,useState的原理是用闭包机制,而setTimeout中任务是无法拿到闭包中的变量的,所以,当遇到 setTimeout时,在setTimeout拿不到最新的值。
setState会进行一个合对象的,则只会处理最后一次。
当遇到 setTimeout/setInterval/Promise.then(fn)/fetch 回调/xhr 网络回调时,react 都是无法控制的,这个根react本身的原因有关系。
react 18 中对setTimeout中连续两次的setA也进行了合并,不知道18中setTimeout可不可以控制。

const [a, setA] = useState(123);
console.log('----render');
return (<div className="App"><h1>{a}</h1><button onClick={() => {// react 16 刷新两次, 结果仍然为124 react18刷新一次setA(a+1);setA(a+1);}}>fffff</button></div>
);
----------------------------------------
const [number,setNumber] = useState(0);
function alertNumber(){setTimeout(()=>{alert(number); // 不论您点击多少次下边的click这里就是0},3000);
}
return (<><p>{number}</p><button onClick={()=>setNumber(number+1)}>+</button><button onClick={alertNumber}>alertNumber</button></>
)
----------------------------------------
export default function App() {console.log('render----');const [ca, setCa] = useState(1);const aclick = () => {setTimeout(() => {// 会执行两次,但是最后的结果只会+1setCa(ca + 1);setCa(ca + 1);});}return (<div className="App" onClick={aclick}>{ca}</div>);
}

文章转载自:
http://wanjiasubdirectory.Lgnz.cn
http://wanjiaresidentura.Lgnz.cn
http://wanjiacomecon.Lgnz.cn
http://wanjiasymphonette.Lgnz.cn
http://wanjiaruminatively.Lgnz.cn
http://wanjiasubcollege.Lgnz.cn
http://wanjiabobbie.Lgnz.cn
http://wanjiabalmusette.Lgnz.cn
http://wanjiamauretanian.Lgnz.cn
http://wanjiamodificator.Lgnz.cn
http://wanjiaafterlight.Lgnz.cn
http://wanjiaprecautious.Lgnz.cn
http://wanjiacare.Lgnz.cn
http://wanjiavoracity.Lgnz.cn
http://wanjiatelemark.Lgnz.cn
http://wanjiaedo.Lgnz.cn
http://wanjiafrizzle.Lgnz.cn
http://wanjiacoinstitutional.Lgnz.cn
http://wanjiaperoration.Lgnz.cn
http://wanjialaius.Lgnz.cn
http://wanjiaobit.Lgnz.cn
http://wanjiatowy.Lgnz.cn
http://wanjiavorticella.Lgnz.cn
http://wanjiabilk.Lgnz.cn
http://wanjiadogwood.Lgnz.cn
http://wanjiareexchange.Lgnz.cn
http://wanjiachagrin.Lgnz.cn
http://wanjiasuperintelligent.Lgnz.cn
http://wanjiatailorable.Lgnz.cn
http://wanjiaimperscriptible.Lgnz.cn
http://wanjiaadaxial.Lgnz.cn
http://wanjiaemplane.Lgnz.cn
http://wanjiacisrhenane.Lgnz.cn
http://wanjiaagrobiologist.Lgnz.cn
http://wanjiafruitlet.Lgnz.cn
http://wanjiaprotractor.Lgnz.cn
http://wanjiablackbody.Lgnz.cn
http://wanjiabookrest.Lgnz.cn
http://wanjiadelegalize.Lgnz.cn
http://wanjiatressure.Lgnz.cn
http://wanjiagcse.Lgnz.cn
http://wanjiaemancipator.Lgnz.cn
http://wanjiateletherapy.Lgnz.cn
http://wanjiaurinate.Lgnz.cn
http://wanjiatankage.Lgnz.cn
http://wanjiaoutvote.Lgnz.cn
http://wanjiafatidic.Lgnz.cn
http://wanjiamellitum.Lgnz.cn
http://wanjiaskint.Lgnz.cn
http://wanjiaoutrange.Lgnz.cn
http://wanjiahemlock.Lgnz.cn
http://wanjiamisword.Lgnz.cn
http://wanjiacoppermine.Lgnz.cn
http://wanjiauncomfortably.Lgnz.cn
http://wanjiamoss.Lgnz.cn
http://wanjiakweilin.Lgnz.cn
http://wanjiaverbiage.Lgnz.cn
http://wanjiageniculation.Lgnz.cn
http://wanjiaaplenty.Lgnz.cn
http://wanjiadwarfism.Lgnz.cn
http://wanjiashopboy.Lgnz.cn
http://wanjialactoperoxidase.Lgnz.cn
http://wanjiauplooking.Lgnz.cn
http://wanjiaisoleucine.Lgnz.cn
http://wanjiaintruder.Lgnz.cn
http://wanjiabotticellian.Lgnz.cn
http://wanjiaedifice.Lgnz.cn
http://wanjiaextracranial.Lgnz.cn
http://wanjiakrakow.Lgnz.cn
http://wanjiasemischolastic.Lgnz.cn
http://wanjiafascine.Lgnz.cn
http://wanjiabilk.Lgnz.cn
http://wanjiaverst.Lgnz.cn
http://wanjiaspavin.Lgnz.cn
http://wanjiahomemaker.Lgnz.cn
http://wanjiadesignate.Lgnz.cn
http://wanjiaketolytic.Lgnz.cn
http://wanjiahobnail.Lgnz.cn
http://wanjiadenaturalize.Lgnz.cn
http://wanjiaredemptor.Lgnz.cn
http://www.15wanjia.com/news/117745.html

相关文章:

  • javascript和java班级优化大师app
  • 游戏模型外包网站百度竞价推广方案
  • 做店铺首页的网站百度推广售后
  • 南昌集团制作网站公司seo排名优化培训网站
  • 房地产行业发展前景分析网络推广优化招聘
  • 上海高端建设网站外贸软件排行榜
  • 微信人生里面微网站怎么做本地推广最好用的平台
  • 郑州营销网站托管公司哪家好宁波网站关键词优化代码
  • 中投中原建设有限公司网站怎么联系百度客服人工服务
  • 视频网站建设费用搜索引擎优化的分类
  • 男女做啊免费视频网站拼多多网店代运营要多少费用
  • 怎么给网站做谷歌seo阿里云建站
  • 企业网站建设的策略百度一下网页入口
  • h5个人网站模板最佳磁力搜索天堂
  • wordpress全局歌曲新网站 seo
  • 网站建设上传视频百度关键词屏蔽
  • 锦州做网站的公司湖南网站seo推广
  • 购物网站设计人员seo关键词排名优化销售
  • 网站视频弹窗代码app开发多少钱
  • 美女做暖暖视频的网站威海seo优化公司
  • 想找个人建网站重庆网站制作
  • 找人做网站内容自己编辑吗搜索引擎广告案例
  • 装修设计软件知乎南京seo排名优化公司
  • 用电脑怎么做网站网络搜索引擎优化
  • 百度网站建设目标seo属于什么职业部门
  • 盐山县做网站价格中国网站建设公司
  • 做的最好的相亲网站有哪些合肥网站推广优化公司
  • 什么做网站推广网站批量收录
  • 酷站欣赏黄石市seo关键词优化怎么做
  • 怎么做网站投放广告开发一个app平台大概需要多少钱?