前端开发的无尽片段:真是个笑话。你有 React 粉丝坚持每个带有时事通讯注册表单的登录页面都需要 Redux。有些 Vue 粉丝假装他们比 React 帮派更酷。你有 Angular 的人,他们忙于在稳定的工作中赚钱,建立可靠的东西来关心前端政治。然后你就有了那些从来没有得到备忘录的疯子:vanilla JavaScript gang。
起初听起来很奇怪,但香草实际上是要走的路。就我个人而言,我以前使用过所有主流前端框架——甚至一些像 Svelte 这样的小众前端框架。我的结论对许多工程师来说并不奇怪:他们都以同样的方式烂透了。完全一样的方式。但是普通的 JavaScript 是免疫的。这就是我跳槽的原因。
但首先,是时候安抚那些在后面挥舞干草叉的人了。不要误会我的意思:这些流行的框架中的每一个都仍然存在且健康,因为它解决了一个问题。表面上,还不错。我的意思是,这就是 Facebook 首先构建 React 的原因。显然,它对某些事情很有用。但问题是,“什么东西?” 我们的问题很少与预期目的完全一致。
毕竟,我们几乎没有人在构建像 Facebook 那样复杂的前端界面。如果是,那么您将面临比如何编写 JavaScript 更大的问题。重点是,在一个不是专门用来处理的问题上使用该框架会带来成本。就像在框架范围内工作的所有开销一样。曾经尝试过在 Svelte 项目中设置 d3 图表库吗?当然不是。这就是为什么你在这里,阅读这篇文章。如果你曾经尝试过,你会一直尝试到今天。因为这种任务会让你质疑你对职业的选择。
这也让你想知道:如果我们放弃框架会怎样?无论如何,大多数摩擦都是由他们的指导方针引起的。所以只需删除指南。你还剩下什么?没有值绑定。乏味的 DOM 操作。一个笨拙的 500 行功能,可在您将鼠标悬停在按钮上时更改其文本。听起来很糟糕。但你也获得了一些重要的东西:自由。
您可以随心所欲地构建任何东西。您设置导轨。如果您需要值绑定,您可以构建它。并按照您的方式构建它。事情的运作方式没有歧义。缺点是一切都必须经过你。但从好的方面来说,一切都必须经过你。是我一个人,还是这种选择加入的方法感觉更“正确”?当你只需要一把螺丝刀时,为什么把整个车库都带回来很正常?
将不需要的东西保留在代码之外不仅很好。还有一个事实是,当您阅读完上厕所时发布的最新 React 版本的文档时,您就可以自己制作所需的一个功能了。用香草。