我第一次与Redux约会后学到了什么

不久前,在附近没有人希望Angular成为主要的技术专长之后,我决定跳上React火车。 令人震惊的是,许多雇主正在为这个新来的孩子解雇Angular。

但这就是事实,我决定根据市场需求调整技能并提高技能。 库和框架一直在变化。 除了编程范例,结构和思维方式外,编程中没有什么是永久的,但这是完全不同的故事。

这个关于我第一次与Redux约会的故事以及这是我对体验的看法。

让我们从React开始

很多人告诉我,React很容易-他们没有说谎。 React IS绝对比Angular 2更容易上手,尤其是如果您没有任何经验的话。 这使人想起了Angular 1的原始时代,那时您可以将框架放到任何地方,而不必按照Angular 2+的建议进行大规模且独立的设置。

但是,任何真正简单的事情都会为创意编码人员带来复杂的空间。

React =接口

当您开始使用React时,人们没有告诉您的是,它只是一个接口组织库,使编码更容易。 React的主要重点是以一种从编码效率和逻辑工作流程的角度有意义的方式连接用户所见和编码人员如何编码之间的关系。

React通过将HTML,CSS和JavaScript放在一边并将所有内容放入一个文件中,从而重绘了它们之间的边界。 在Angular基于文件类型查看关系的情况下,React将HTML,CSS和JavaScript之间的关系视为一个内聚单元,并且在以组件形式表示它方面做得很好。

乍一看似乎很奇怪,但是关注点分离的翻转是可行的。

但是,当您尝试制作一个应用程序时,它不仅仅具有在屏幕上绘制内容的功能。 React擅长于此,但仅此而已。

一切都一样,只是不同

一旦您开始涉及数据,数据库连接,查询和状态的区域,事情就会变得有些复杂。

这就是Redux的用武之地。

当React忙于为用户处理图片时,Redux忙于跟踪所有更改的数据。 从理论上讲,Redux可以单独使用,也可以与其他库一起使用,但是由于React的流行和状态管理领域的不足,React和Redux通常结合在一起。

Redux = React的缺失状态容器

从Angular开发人员的角度来看,Redux等效于Angular应用程序中的服务和工厂。 尽管可能对React和Redux配对有很多抱怨和嘲讽(主要是因为它们在没有一些代码将它们相互连接的情况下并不能神奇地协同工作),但是状态容器的想法并不新鲜。

React的口号是“用于构建用户界面的JavaScript库”,而不是满足所有前端编码需求的解决方案。 Angular是一个框架,使它在可用的功能和功能上更加强大,而React是一个功能单一的小得多的库。

Redux增强了React的缺失部分,以帮助开发人员完成其应用程序。

津贴和怪癖

对于每个框架和库,总会有一些特权和怪癖。

我与Redux的第一个错误是通过中间件react-redux-firebase。 事实证明,沿线会出现一个巨大的红色大Warning: Failed context type: The context store is marked as required in FirestoreConnect(Dashboard), but its value is undefined

该错误使我陷入了对Firebase和Firestore的猎杀中,只是发现问题出在react-redux绑定连接器上。 事实证明,很多事情都与react-redux v6不兼容,但是如果您降级到版本5,一切都会很好。

更多的联系,更多的不兼容机会

不兼容性问题似乎在将来会经常出现-但是与库或框架本身未内置的任何东西有关。

还有很多连接中间件来使事情工作,我发现这很有趣,并且与Angular中的工作方式不同。 使用Angular,您只需在上面添加其他内容即可。 使用React,您需要将其他东西与其他东西粘合在一起才能使其正常工作。

使用React和Redux的好处是,您只能选择创建所需的内容。 与为您提供整套套件的Angular不同,React要求您外出并寻找零件。 对于某些人来说,这可能很烦人,但好处是最终产品的体积要小得多。

最后的话

到目前为止,与Angular相比,我正在制作的应用程序的总体文件要少得多。 我花了很短的时间才开始学习该库,但是我认为在HTML,CSS和JavaScript方面具有扎实的基础,并且对结构和体系结构具有先前的知识和经验。

我正在使用的当前应用程序具有与我之前制作的所有以前应用程序相同的特性和功能-CRUD,数据库查询,身份验证和受保护的路由。 从结构的角度和用户体验来看,最终产品的外观将是一件有趣的事情,尤其是在与Angular合作多年之后。

就个人而言,我喜欢React,并对图书馆及其合作者保持开放的态度。 我明白了为什么如此风靡一时,为什么每个人都如此爱上它。 尽管它不如Angular完整,但React的思维方式和价值观与Google支持的框架不同。 目的不是要彻底改变Web应用程序的制作方式,而是要改变您对创建Web应用程序的想法。