阅读 1826

【译】我放弃React而选择HyperApp - 原因是...

原文:I abandoned React in favor of Hyperapp — Here’s why 翻译RecoReco

像React、Vue和Angular这样的框架似乎在过去的一年里风靡一时,这是有充分理由的:它们使创建和维护可扩展的Web应用变得更加容易。过去,我主要是在兼职项目和课程中使用过React和Vue,我发现它们都有相当陡峭的学习曲线。然而,出于无奈,我最终选择了React和Redux作为我的工具,在这一堆工具中,我最不喜欢它们。

随着时间的推移,我意识到我在使用这些工具时,每一步都在不断地寻求帮助。我甚至在某些时候尝试过Vue,但也没能如愿以偿。在这一点上,我应该提到,我在Web开发方面的技术水平介于初级和中级之间,这取决于我正在构建的技术和性质。但是,就React、Redux、Vue和Angular而言,我当然觉得自己是个绝对的初学者,即使在使用了一年左右的时间之后。

React是一个非常酷的框架,但它可能会引起一大堆的头痛,特别是当你的Web应用变得更加复杂时。

所以,我在周围搜索了一下,令我惊讶的是,还有一个工具我可以使用--Hyperapp。它当然没有那么受欢迎,可能性能也比其他一些选项要差一些,但它的复杂程度要低很多,而且可以用1KB的小体积完成相当多的工作。看到这样的框架,我相当兴奋,于是我泡了一杯咖啡,坐下来查看文档,最终花了一个小时才看懂。之后,我把它融入了我工作中的一个项目中,结果发现它比原来看起来还要好。

hyperapp - 1 kB JavaScript框架,用于构建Web应用程序。github.com
复制代码

细心的读者和/或React爱好者此时一定会问--你到底为什么认为Hyperapp是一个好的选择?这就是我的理由。

##直接的API

当我阅读Hyperapp的文档时,有一个想法变得很清晰:该框架的API真的很直接,远没有React复杂。在过去与其他框架合作的过程中,我可以确认,由于框架的简单性,记住Hyperapp的工作方式与其他任何框架相比都是轻而易举的。这反过来又可以避免在你发布Web应用的前一天晚上试图找出那个讨厌的bug时的很多头疼的问题。

##与你选择的工具原理相同

如果你习惯了React或者Vue,Hyperapp会非常容易上手。它的核心原理与React的原理即使不完全相同,也非常相似,大部分你知道的东西工作原理也非常相似,这意味着你可以在短时间内开始使用它,而且不需要学习很多新东西来尝试。它甚至支持JSX的开箱即用,并且引以为豪的是,它能够编写出易于跨框架共享和重用的组件。

##虚拟DOM和状态管理

Hyperapp对我来说主要的卖点是状态管理和虚拟DOM都很好地融入到框架中,这两者都是开发现代Web应用所必需的。这意味着你不需要像Redux这样的工具来正确管理状态,减少你的Web应用的大小,并帮助你在这个过程中保留一部分理智。

##易于维护

多年来,我在使用各种框架和包的过程中发现,其中一些框架和包需要大量的模板代码才能开始使用。React和Redux在这一点上特别有问题,因为有很多东西你需要交代。另一方面,Hyperapp几乎不需要那么多,它的代码也更容易维护,因为它不需要你浏览模板代码或任何像reducer那样复杂和混乱的东西。最重要的是,你可以阅读Hyperapp的源代码,并准确地理解它的作用,因为它的代码大约有400行。这给你带来的好处是,如果你对它的工作方式有什么不满意的地方,你可以调整它并参与它的开发。

我希望这篇文章能够说服你给Hyperapp一个机会,看看它是否适用于你可能正在进行的项目。如果你喜欢它,记得在Github上打星,以帮助它周围的社区发展。

如果不喜欢,欢迎在下面评论你选择的框架,以及为什么Hyperapp可能不是一个合适的替代品。