据我所知,使用 ES6 创建和导出 React 类有两种方法。
也许被认为是旧方法:
export default React.createClass({
...
});
也许被认为是新的方式:
export class Todo extends React.Component {
...
};
今天有人问我,与"new"方式相比,为什么我更喜欢“旧”方式。除了"new"方式使用扩展并因此使用继承这一事实之外,我真的没有一个好的答案。我在 C# 中学到的始终是组合优于继承。在 javascript 中也是如此,在 95% 的情况下,更喜欢使用揭示模块模式而不是原型(prototype)继承。
作为一个相当新的 react 者,我的问题是,我是否遗漏了为什么新方法比旧方法更好的原因?在我看来,与继承一个函数相比,拥有一个接受参数并返回一个对象的函数要干净得多。
遵循转换(TodoComponent)或者添加某种装饰器而不是从 React.Component 扩展不是更好吗?
最佳答案
我倾向于始终查看 React 团队示例以获取指导。在本例中,他们提供了 whole example致力于 ES2015。正如您所提到的,这清楚地涵盖了"new"语法。
我还仔细阅读了大量代码,了解事情是如何完成的。大多数使用 ES2015 的项目也使用"new"语法。
关于javascript - 对 React 组件使用 ES6 类语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32149672/