我开始使用react和es6并尝试确定
之间的真正区别Dim cell As Range
For Each cell In Range("C1", Range("C1").End(xlDown))
cell.Value = Left$(cell.Value, 6) & "59"
Next
和
export const Voting = React.createClass({ ... })
似乎我可以用两者达到同样的预期效果(当然,除非我是错的)。如果没有差别,我想我更喜欢第二种格式,但我似乎无法弄清楚真正的区别是什么。非常感谢任何和所有的投入,谢谢!
答案 0 :(得分:4)
来自blog post that announced ES6 class support:
JavaScript最初没有内置的类系统。每个流行的框架都是自己构建的,我们也是如此。这意味着您可以为每个框架学习稍微不同的语义。
我们认为我们不是在设计类系统的业务。我们只想使用任何习惯的JavaScript方法来创建类。
在React 0.13.0中,您不再需要使用
React.createClass
来创建React组件。如果你有一个转换器,你今天可以使用ES6课程。
因此,两者都做同样的事情(定义一个React组件),但ES6类是更原生的方式(没有自定义的React样板代码),因此更容易推理代码。这应该是创建React组件的首选方法。
虽然React.createClass
和ES6课程之间存在两个显着差异(在该博文中也有提及):
Autobinding - React.createClass
自动将所有方法发送到当前实例。使用ES6课程,您必须自己完成。
Mixins - ES6课程对React.createClass
之类的mixins没有直接支持。