请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

有两个问题请教

问题1: 由于不可变值的思想,如果state中保存的数据是对象的话,是不是每次修改之前,都需要用深度拷贝函数,创建一个副本,如果对象的嵌套层数很大,或者数据量大,那岂不是效率很低吗?实际开发中会出现这种情况吗

问题2: 类中的this指向的是实例对象,请问这个实例对象指的是虚拟DOM,还是真实DOM?我想应该指向的是虚拟DOM,因为真实DOM需要虚拟DOM生成,所以现有虚拟DOM,才有真实DOM。那么setState就必然是更新的是虚拟DOM中的状态,然后真实DOM才更新。那么这个this.setState,中的this,必然就是虚拟DOM。我理解的没错吧?

正在回答 回答被采纳积分+3

1回答

双越 2022-03-14 21:42:20

第一,如果对象很复杂,可以使用 immutable.js 或者 immer 这样的“不可变数据”的功能,具体可以百度搜索

第二,this 指向的是组件示例,并不是虚拟 DOM 或者真实 DOM。setState 是组件实例的方法。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕丝1117639 #1
    请问这个组件实例和虚拟DOM之间有什么关系吗?
    回复 有任何疑惑可以回复我~ 2022-03-15 14:09:20
  • 双越 回复 提问者 慕丝1117639 #2
    虚拟DOM 是组件实例的一个属性,可以这么理解。
    回复 有任何疑惑可以回复我~ 2022-03-15 18:21:25
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信