迁移到React中的ES6类,处理与state交互的Mixins

时间:2017-09-27 20:30:45

标签: reactjs inheritance ecmascript-6 mixins

我们正在准备将我们的React代码库迁移到使用ES6类,当然这意味着要处理我们拥有的所有mixin。我已经探讨了讨论转换mixin的方法的文档,例如使用高阶组件或采用实用方法并将它们放入导入的模块中。但是,我们有一些mixin,这些方法不起作用。

一个简单的例子是一个mixin,其中包含来自此表单doc的handleChange函数的一个版本:https://facebook.github.io/react/docs/forms.html

这是一种实用功能,但由于它与状态交互,因此不能放在单独的模块中。它不能用作HOC,因为嵌套组件将无法访问该函数。

使用继承似乎是一个很好的例子,但我一直在阅读有关如何不鼓励这种情况以及如何在React中使用它。我还看到了ES6的“mixin”模式,它涉及返回子类的函数,这些子类将功能添加到另一个类,有效地动态子类化某些东西,但有些东西似乎不正确,似乎错过了为什么mixin有失宠了。

我认为mixin中的代码可以只是内联到使用它的组件中但是我讨厌像所有那样复制的样板代码。此外,我们还有其他具有相同问题的mixin,其中包含更复杂的功能,这使得问题更加严重。

我很想听听人们关于如何在反应和ES6的最佳实践指南中最好地处理这个问题的建议。谢谢!

0 个答案:

没有答案