反应:它在技术上是向后兼容的!

2020-09-13 05:54:52

我在构建前端Armory时遇到的一个大问题是,在推出网站后,在花费数月开发原始课程后,Reaction团队发布了一个全新的API,该API在很大程度上与以前的API不兼容。

现在,Reaction团队自然不喜欢这样推销它。钩子是“向后兼容的”。但现在,我已经离开Twitter几个月了,我刚刚向我的前端Armory客户退还了近一年的订阅费(哦,而且所有内容都是完全免费的),所以我很高兴地说是这样的。告诉我我错了。我他妈的才不管呢。

对胡克斯的反应就是不反应。这是一个同名的不同框架,甚至不是重大版本更改的功劳。

问题是:不能将钩子与类组件一起使用。尝试用钩子和类组件构建应用程序就像用Haskell编写一半的应用程序,用Java编写另一半应用程序一样。这实际上是有可能的。Facebook的工程师也可以在7-11做兼职工作。

但从更直接的意义上讲,您真的-实际上-不能在类组件代码中使用挂钩。API禁止这样做。因此,基本上,如果您编写任何自定义钩子,那么您想要在其中使用这些钩子的任何组件也将是基于钩子的。您很快就会发现,在实践中,一旦开始编写自定义挂钩,就不能再编写类组件了。除非您想在流程中重新实现所有基于钩子的帮助器逻辑。

切线:钩子应该称为混合钩子。但我猜Reaction团队的某个人想给我们一个单独的警告,说他们会连接到你的代码库,然后你就不能把他们弄出来了。

好的,回到我的咆哮,所有这一切的结果是,您不能使用您在现有的遗留代码中编写的任何闪亮的新自定义钩子。不想复制功能吗?我猜您将不得不用钩子重写所有这些类组件。就像反应手册上说的那样。

而且,错误边界API仍然只对类组件起作用,这只会增加认知上的不和谐。因此,如果您是一名新的Reaction开发人员,想要做一些与众不同的事情,比如,哦,我不知道,处理错误,那么您将需要学习这个很大的基于类的API,您可能一辈子都看不到它了。

但不要误解我的意思-我实际上很喜欢Hooks API。我每天都用它。如果当权者把它拿走,告诉我回到类组件上来,我会很困惑的。但我想只是我觉得…。钩子(和悬念)不是我花了很多个月写的反应。它们不是“仅仅是JavaScript”。他们不是MVC里的V。见鬼,你知道“摩登反应”实际上是用猴子修补控制台,让事情“不那么混乱”吗?

现代反应在技术上是令人印象深刻的,但我觉得我不能自己建造它,不是在一个周末,也不是在50年内。我不明白它是怎么运作的,我也不觉得我能做出贡献。我不想贡献什么。就是不好玩了。去他妈的马克·扎克伯格。不知何故,这都是他的错。但说真的,Facebook拥有Reaction的事实肯定不会让它更容易得到支持。

但我离题了。现代反应可以做一件事,那就是呈现类组件!如果你额外安装一两个软件包的话!如果你安装了DOSBox,现代的Mac电脑就可以运行DOS游戏!嘿,你知道吗,原来一切在技术上都是向后兼容的。

Reaction已今非昔比,它肯定不再是MVC中的V或“仅仅是JavaScript”。但它仍然是一个非常好的工具。这有点像点了披萨,然后点了牛排。我会继续用的。但我要再教一次还需要一段时间。

在此浏览器中保存我的姓名、电子邮件和网站,以便下次我发表评论时使用。