[react] React为什么不要直接修改state?如果想修改怎么做?

有时表现出异步,有时表现出同步
1:在合成事件和钩子函数当中是异步的,在原生事件和setTimeout当中是同步的
2:异步并不是说内部是由异步代码组成,本身的执行过程和代码都是同步的,只是合成事件和钩子函数的调用在更新之前,导致拿不到数据形成所谓的异步,可以通过setState的第二个参数(是个回调函数,拿到更新数据)
3:批量优化也是建立在异步上面,在原生事件和定时事件中不会批量更新,
4:合成事件(就是我们给那些元素绑定点击事件等等都属于合成事件)

个人简介

我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论

主目录

与歌谣一起通关前端面试题

[react] React为什么不要直接修改state?如果想修改怎么做?相关推荐

  1. 云钻还在吗 苏宁怎么解除实名认证_实名认证-苏宁如何修改实名认证我想修改实名认证信?苏 – 手机爱问...

    2019-04-25 手机QQ怎么修改实名认证信息? 01进入QQ,点击自己的头像,如图所示.02切换页面之后,点击"QQ钱包",如图所示.03进入QQ钱包,点击"设置& ...

  2. React 项目----setState 方法修改 state (16)

    在class 类中,构造器里面有一个实例变量state ,这个也是class 组件和function组件之间的区别.class 组件有自己的私有的数据 export default class Bin ...

  3. [react] componentWillUpdate可以直接修改state的值吗

    [react] componentWillUpdate可以直接修改state的值吗 1: 不行,这样会导致无限循环报错. 2:在react中直接修改state,render函数不会重新执行渲染,应使用 ...

  4. React学习手记5-细说组件state

    设计state state是跟UI相关的,组件的任何UI改变都可以从state的变化中反映出来.state代表一个组件UI呈现的最小状态,没有任何多余的状态,也不应该存在通过其他状态计算而来的中间状态 ...

  5. React文档(六)state和生命周期

    想一下之前的章节时钟的例子. 目前为止我们只学习了一直方式去更新UI. 我们调用ReactDOM.render()方法去改变渲染的输出: function tick() {const element ...

  6. 【React】React三大属性:Props、State、Refs

    文章目录 Props State Ref Props React框架定义了一个Props的概念, 专门用来实现React组件接受参数的输入. 每个组件对象都会有props(properties的简写) ...

  7. [react] react组件的state和props两者有什么区别?

    [react] react组件的state和props两者有什么区别? State 是一种数据结构,用于组件挂载时所需数据的默认值.State 可能会随着时间的推移而发生突变,但多数时候是作为用户事件 ...

  8. [react] react中的setState是同步还是异步的呢?为什么state并不一定会同步更新?

    [react] react中的setState是同步还是异步的呢?为什么state并不一定会同步更新? 由React控制的事件处理程序,以及生命周期函数调用setState不会同步更新state . ...

  9. [react] react中修改prop引发的生命周期有哪几个?

    [react] react中修改prop引发的生命周期有哪几个? static getDerivedStateFromPropsshouldComponentUpdaterendergetSnapsh ...

最新文章

  1. 牛客小白月赛2-B小马过河(求点到直线的垂足)
  2. [luoguP1029] 最大公约数和最小公倍数问题(数论)
  3. 深度学习自学(十一):Aborted at 1558257386 (unix time)
  4. oralce入门学习
  5. python使用临时文件
  6. 求矩形中正方形和长方形的个数
  7. 【Markdown简单语法练习】
  8. win10中文用户名怎么改成英文文件夹路径
  9. if 条件结构与switch条件选择结构
  10. PC浏览器如何设置代理
  11. 第二章:MFC绘图基础
  12. [Leetcode] 717. 1比特与2比特字符
  13. Xposed模块开发
  14. Altium Designer 19简易教程(原理图的绘制)
  15. Java HashSet和Java HashMap
  16. MVCC和快照读丶当前读
  17. 必易微电子通过科创板注册:拟募资6.5亿 小米长江是股东
  18. mysql故障应急_Mysql错误:紧急救助!!!
  19. 手机wap网站建置方案
  20. 网络协议-前端重点——DNS和CDN

热门文章

  1. 足球预测_预测足球热
  2. MySQL set names 命令_mysql set names 命令和 mysql 字符编码问题
  3. leetcode945. 使数组唯一的最小增量(排序)
  4. leetcode343. 整数拆分(dp)
  5. python:校验邮箱格式
  6. 解决Eclipse的Team菜单中没有SVN选项的问题
  7. quick 中实现单例
  8. 初识JavaScript———JavaScript注意事项(1)
  9. 驱动、数据库-Java HIVE 使用Jdbc连接Hive-by小雨
  10. 项目管理沙龙第五次聚会