在 ES6 中,还有其他方法来声明变量,例如 let 和 const
A variable declared with const cannot be re-assigned or re-declared.
为什么 React 应用程序中有这么多 const 声明,以及使用 const 相对于 var 和 let 有什么独特的好处?
最佳答案
第一answer by @Carcigenicate正确解释const的用法。
但仅使用 const
关键字不足以实现不变性。
例如您可以改变 const 数组:
const a = [12,14,15];
a[0] = 13; // allowed. but mutate a value.
为了在属性级别实现对象的不变性,新的 JS 提供使用 Object.freeze()
、.assign()
等,或者您也可以使用像 immutableJS 这样的新库(还有一些更好的可供查看)。
关于 React 中的不变性,React 组件是纯函数。他们接受 Prop 并返回 View 。 纯函数是函数式编程的基础。它们带来了各种各样的好处(实现组合、易于理解函数代码单元、易于测试等等)。纯函数没有任何副作用。它也不能修改参数对象,并将其视为不可变。
React组件创建的DOM形成虚拟DOM,仅通过setState调用检测数据变化。在调用 setState
时,它会使用react并触发其真正的 DOM 更新算法。如果开发者更新了 props,这种情况就不会发生。这篇文章解释了这一点:http://teropa.info/blog/2015/03/02/change-and-its-detection-in-javascript-frameworks.html
React 鼓励单向数据流,更新状态作为 props 从上到下流动,对用户操作的 react 作为方法调用向上流动。数据流使调试/理解 react 应用程序变得容易的一种方式。
我创建了下图来理解 official React docs 中所示的示例
关于javascript - 为什么 React 及其生态系统会采用不变性的概念?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44915694/