12 Comments

  1. flyingzl

    reactjs要学习新的jsx,所以难免会有点不适应。其实我们的系统非常庞大,采用 React+Redux完全,开发效率飞快。楼主也许不是专业的前端开发人员,配合上ES6,还是非常高效的。

    • 我就是楼主。

      我的确不是专业的前端开发人员,我学的专业是法学。大概十一年前,我还在上大学时,写了一个跑在IE 5.5和IE6的虚拟DOM框架。

      React+Redux 和我十一年前写的框架相比,可能开发效率的确高一些。

      不过我去年写的 Binding.scala 的开发效率大概要比React高三倍多。

  2. ReactJS框架比较虚拟DOM差异的过程,既慢又容易出错。比如,假如你想要在某个 列表的顶部插入一项 ,那么ReactJS框架会误以为你修改了 的每一项 ,然后在尾部插入了一个 。

    这段话, 表明了博主并不知道设置 key 这个 props 的作用. 如果你只是单纯的用 index 来作为 key, 确实会出现博主这种情况. 但正确的使用方式应该是使用对应 item 的 id, 就可以解决. 所以, 如果出现”ReactJS框架会误以为你修改了 的每一项 ,然后在尾部插入了一个 “, 那其实是对 key 的误用

    • 您说的办法就是本文中提到的:

      自动的猜测算法既不准又慢,必须要前端开发者手动提供 key 属性、shouldComponentUpdate 方法、componentDidUpdate 方法或者 componentWillUpdate 等方法才能帮助 ReactJS 框架猜对。

      虽然手动帮助ReactJS猜对也行得通。但我们有更简单的选择。

      您可以看一下第三篇《虚拟DOM已死?》:
      看完了您就知道,用了Binding.scala的精确数据绑定,就再也不需要像ReactJS这样的依靠程序员硬编码的虚拟DOM了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注