你可能不需要前端框架
首先我要说一件重要的事情。
如果你想从事专业的前端开发,你应该学习一些流行的前端库/框架。用它们构建东西。理解基于组件的架构。练习,练习,再练习!构建一些示例和大量的小应用程序,在你的作品集中展示。
当你开始一个严肃的个人项目时,不妨运用你学到的框架知识,思考一下是否需要它。乍一看,你可能觉得需要。但其实,这有点像用消防水管浇灌植物。

我最近启动了自己的个人项目,开发一个迷你论坛/留言板应用。(我一直很喜欢留言板,多年来一直想自己做一个,所以自己做一个对我来说很有趣,而且学习起来也挺有收获的。)起初,我尝试着把 Next.js 塞进我的项目中,作为视图部分。
试用之后,我非常喜欢这个框架。它简洁流畅,几乎不需要任何样板代码就能实现 React 的服务端渲染。
我最初的目标是整合身份验证,并将我自己的数据库连接到它。幸好 Zeit 有很多示例可以展示如何操作。通过这些示例,我决定创建一个单独的 Express 服务器与 Next 一起运行,或者使用 Next 的新 API 路由来创建端点。
没什么大不了的吧?
嗯,对于像我的小留言板这样简单又实验性的东西来说,这需要大量的工程设计。最后,我决定更深入地反思我的项目,并确定最小可行产品应该是什么样子。最糟糕的情况是,如果我真的需要它提供的功能,我可以稍后再引入 Next。
灯泡灭了。
我意识到 Express.js,一个服务器端框架,已经拥有了相应的工具。HTML、CSS 和普通的客户端 JavaScript 也拥有足够的能力来满足任何可能出现的客户端需求。
你知道,即使我拥有所有可用的工具,我仍然试图拿起一个我不需要的工具来解决一个我没有的问题。
顿悟之后,我开始使用app.render
Express.js,并引入了 Handlebars 来模板化我的页面。它不仅简化了我的应用程序,让我运行起来更顺畅,还让我体会到了服务器渲染页面的强大力量。
令我困惑的是,我所依赖的许多学习材料都把我推向了单页应用程序的方向,而不是一些经过验证的、更好的、简单的应用程序。
我很后悔没有更早地重视服务器渲染,或者在我的开发过程中使用它。只需在服务器上处理所有逻辑,然后输出一个页面,就能带来强大的功能。另外,如果我需要在前端进行一些交互,我只需链接到页面上的脚本,然后用纯 JavaScript 操作 DOM 即可。
缺点是,在服务器加载下一个路由时,页面之间会出现白屏。你可以把这算作缺点吗?我不太确定这算不算缺点,因为这对于网站和浏览器来说,是一种正常的现象。
这个项目轨迹的改变也让我回想起了我之前的一些项目。很多项目其实可以用简单的静态页面完成。其中一半甚至不需要 Node.js 服务器。我很高兴我用过 React、Gatsby 等等,但我从未真正找到过使用它们的理由。
我们可以利用现有的基础工具做很多事情。客户端框架的存在是为了将 DOM 操作中比较难的部分抽象出来。我认为主要原因是随着应用的增长,其复杂性也会随之增加。手动处理所有交互、编写事件监听器等会让人感到沮丧。
但是,我不知道我的留言板应用程序是否能够达到这一点。
我决定至少对于个人项目来说,让它们逐渐需要一个框架,而不是一开始就强加一个。我可以轻松地将 Express 端点转换为返回 JSON 的端点,然后构建使用模板以外的其他方法的视图。我认为这是这里最大的收获。你可能不需要前端框架,尤其是在你的应用还比较简单的时候。
大家觉得怎么样?
文章来源:https://dev.to/bbarbour/you-probously-don-t-need-a-front-end-framework-26o6另外,如果你还没有这样做,那就启动一个 Express.js 服务器,练习一下服务器渲染你的页面/视图吧。如果你还是不信,我相信你会明白我的意思。网上有很多教程教你怎么做。Brad Traversy 的这个是我最喜欢的一个。它使用 EJS 而不是 Handlebars(它们的功能基本相同,只是语法不同。)