栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在React中使用不可变状态有哪些缺点?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在React中使用不可变状态有哪些缺点?

  1. 文档。SO中一些投票最多的问题/原因与琐事有关,例如更新嵌套列表项,这都是因为文档更加面向熟悉函数式编程的读者,这使得它对其余函数的访问变得不那么容易。
  2. 将模型层次结构知识与组件分开并不是一件容易的事。我不喜欢
    this.state.getIn("[parent, child, index]")
    在组件中进行操作,因为它增加了更改模型破坏组件代码的可能性。这可以通过可扩展性(在下面进行更多介绍)或通过辅助方法来避免,但是您肯定会失去普通JS成员的简单性。
  3. 我面临的一个重大挑战是能够对状态进行序列化和反序列化。fromJS方法支持自定义恢复器,但它们是皮塔饼,需要仔细的测试和维护。
  4. 记录类型严重受制于称为嵌套的崩溃。这很可悲,因为它允许更容易(相对而言)可扩展性,但仅鼓励单级层次结构。您无法轻松地从JSON创建嵌套记录。除非您使用上述的皮塔饼齐发器,否则很难将它们与常规的fromJS不可变用法混合使用。我是否提到了令人遗憾的是,给定Records将模型属性公开为一等成员,确保模型完整性和默认值。
  5. 然后是可扩展性。尝试在不可变数据模型周围添加辅助对象,以抽象化组件中模型层次结构的依赖性,您将面临明显的障碍。反序列化成为一场痛苦的离婚战。如果唱片混在一起,它们将哭泣,以此类推,那么您就需要弄乱Reviver。一种更容易的扩展机制将大大有助于使我的组件代码更简洁。
  6. 没有记录的最佳做法。尽管这与#1相符,但我仍要指出,缺乏好的文档会阻止人们选择最佳的做事方式。我不确定是否应该使用更新程序,forEach或setIn(等等)来更新不可变结构。这些方法相互之间的交叉引用不足以让您知道周围有哪些替代方法。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/374648.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号